擅长:python、mysql、java
<p>由于您有100个类的标签,这在原则上是一个相当标准的<a href="https://scikit-learn.org/stable/modules/outlier_detection.html" rel="nofollow noreferrer">outlier detection</a>问题,您需要找到与大多数带有相同标签的文档不相似的文档。在</p>
<p>正如您所建议的那样,您可以使用余弦相似度(我假设在字数方面)来对文档对的相似性进行评分。余弦相似度涉及到许多实际问题,例如重要单词的选择,<a href="https://en.wikipedia.org/wiki/Stemming" rel="nofollow noreferrer">stemming</a>,停止词等等,您也可以通过<a href="https://en.wikipedia.org/wiki/Cosine_similarity#Soft_cosine_measure" rel="nofollow noreferrer">soft cosine similarity</a>来考虑单词的相似性。在</p>
<p>计算这么大的语料库的所有余弦相似度是不切实际的,因此您需要以某种方式总结每个类。一个简单的方法是平均每个文档类型的字数,并测量此模型文档与类中每个成员之间的相似度,因此,要对每个文档评分,只需计算一个余弦相似度。您应该拒绝某些选定的百分位文档作为潜在的错误分类,阈值与您期望的错误分类文档的百分比相当。显然,更高的阈值将消除更多错误,但也更正确地分类文档。在</p>
<p>一个更好的实现可能是对100种文档分别应用<a href="https://stackoverflow.com/questions/4404081/fast-n2-clustering-algorithm">fast clustering algorithm</a>。每个集群中的平均字数将为每个标签提供一些模型文档,您应该使用最高的相似度作为每个文档的分数。在</p>