首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何匹配单词而不考虑时态或形式?

我如何匹配单词而不考虑时态或形式?
EN

Stack Overflow用户
提问于 2012-06-01 22:17:04
回答 3查看 1.1K关注 0票数 4

我目前正在编写一个脚本,它在文档中运行,提取所有关键字,然后尝试将这些关键字与其他文档中找到的关键字进行匹配。有一些细节使这个问题变得复杂,但它们与我的问题不是很相关。基本上,我希望能够匹配单词,而不考虑它们出现的时态。

例如:如果给定字符串" swam“、”swam“和" swimming ",我希望程序能够识别出这些都是相同的单词,尽管它是否会将单词存储为swim、swam或swimming对我来说无关紧要。

我知道这个问题基本上可以通过一个包含所有这些单词形式的字典来解决,但我不知道有任何字典以这种方式映射到对此有用。我更喜欢与Python兼容的解决方案或库,因为这是我目前正在使用的脚本,但我可以使用任何语言的解决方案(除了haskell或eiffel或其他类似的晦涩/难以使用的语言)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-01 22:20:53

查看pywordnet

代码语言:javascript
运行
复制
>>> 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})
票数 5
EN

Stack Overflow用户

发布于 2012-06-02 12:55:22

从您的问题看,您似乎在寻找一种词干词汇化算法,该算法本质上将每个单词映射到其字典形式。其中一个众所周知的算法是Porter词干生成算法,该算法已经存在了三十年,并且在各种语言中都有实现,包括Python。您可以在http://tartarus.org/martin/PorterStemmer/上找到这些实现的列表。

虽然Porter词干分析器已经存在很长时间了,并且出于比较的原因可能会很有用,但Spaceghost正确地指出,这不一定是可用的最佳系统。Snowball被认为比Porter词干提取算法更好。

票数 1
EN

Stack Overflow用户

发布于 2012-06-05 16:58:10

你描述的这个问题似乎是一个词干问题,它们是一些有用的词干分析器,比如porter词干分析器。更具体地说,尝试使用Python的nltk工具包实现它,如果我没弄错的话,它附带了一个porter词干分析器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10851959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档