我目前正在编写一个脚本,它在文档中运行,提取所有关键字,然后尝试将这些关键字与其他文档中找到的关键字进行匹配。有一些细节使这个问题变得复杂,但它们与我的问题不是很相关。基本上,我希望能够匹配单词,而不考虑它们出现的时态。
例如:如果给定字符串" swam“、”swam“和" swimming ",我希望程序能够识别出这些都是相同的单词,尽管它是否会将单词存储为swim、swam或swimming对我来说无关紧要。
我知道这个问题基本上可以通过一个包含所有这些单词形式的字典来解决,但我不知道有任何字典以这种方式映射到对此有用。我更喜欢与Python兼容的解决方案或库,因为这是我目前正在使用的脚本,但我可以使用任何语言的解决方案(除了haskell或eiffel或其他类似的晦涩/难以使用的语言)
发布于 2012-06-01 22:20:53
查看pywordnet。
>>> N['dog']
dog(n.)
>>> N['dog'].getSenses()
('dog' in {noun: dog, domestic dog, Canis familiaris},
'dog' in {noun: frump, dog}, 'dog' in {noun: dog},
'dog' in {noun: cad, bounder, blackguard, dog, hound, heel},
'dog' in {noun: pawl, detent, click, dog},
'dog' in {noun: andiron, firedog, dog, dogiron})发布于 2012-06-02 12:55:22
从您的问题看,您似乎在寻找一种词干或词汇化算法,该算法本质上将每个单词映射到其字典形式。其中一个众所周知的算法是Porter词干生成算法,该算法已经存在了三十年,并且在各种语言中都有实现,包括Python。您可以在http://tartarus.org/martin/PorterStemmer/上找到这些实现的列表。
虽然Porter词干分析器已经存在很长时间了,并且出于比较的原因可能会很有用,但Spaceghost正确地指出,这不一定是可用的最佳系统。Snowball被认为比Porter词干提取算法更好。
发布于 2012-06-05 16:58:10
你描述的这个问题似乎是一个词干问题,它们是一些有用的词干分析器,比如porter词干分析器。更具体地说,尝试使用Python的nltk工具包实现它,如果我没弄错的话,它附带了一个porter词干分析器。
https://stackoverflow.com/questions/10851959
复制相似问题