我目前正在进行一个项目,在这个项目中使用python中的tfidf获取文档集中最相关的10个单词。然而,也有结果,其中有得到相同的词和它的多元或副词左右。为了解决这个问题,我决定使用词根,但这会导致一个问题,即单词及其反义词可以具有相同的词根,或者通过将一个单词还原为它的根,如果用户要搜索它,就不能返回并在文档中找到这个特定的单词。在这种情况下,是否有比nlp更好的nlp?任何提示或链接都是有用的。我在做一些和youtube非常相似的事情。
发布于 2019-12-28 00:34:41
首先,您需要在Stems和Lemmas之间做出选择(请注意,Roots也不是)。谷歌的差异,以获得更多关于这一点。
你提到反义词,但大多数是由前缀决定的(例如重要的和不重要的)。因此,Stemmer应该保留大多数反义词不变。
至于同义词,让我们假设您只考虑具有完全相同词干的单词,因为如果您想将同义词与完全不相关的词根联系起来,您可能会想到语义和类似wordnet之类的东西,但这可能会使您的问题变得超出合理的范围……
从您的问题中,您已经有了一个在Python...The中工作的Stemmer,最简单的解决方案是使用两个字典:一个字典将词干/引理映射到屈折/派生完整单词的集合/列表(和/或它们的频率)。第二个字典将这些完整的单词映射到它们在索引文档中的不同位置。
这样您就可以阻止用户输入单词,在top-k tf-idf/stem字典中检查它,然后将整个单词与第二个字典映射到它在文档集中出现的情况。
(考虑到你的问题,很难进一步阐述。)
https://stackoverflow.com/questions/59505444
复制相似问题