首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本处理/比较引擎

文本处理/比较引擎
EN

Stack Overflow用户
提问于 2009-11-06 13:45:30
回答 3查看 632关注 0票数 2

我希望比较两个文档,以确定其文本的百分比匹配的关键字。

为了做到这一点,我可以很容易地将它们切成一个经过消毒的单词并进行比较,但我想要一些更智能的东西,可以根据词根匹配单词,即。即使它们的时态或复数是不同的。这种技术似乎可以在全文搜索中使用,但我不知道要查找什么。

是否存在这样的引擎(最好适用于Java)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-06 14:47:21

是的,你想要一个词干分析器。Lauri Karttunen用有限状态机做了一些令人惊叹的工作,但遗憾的是,我不认为有可用的实现可用。如前所述,Lucene有针对各种语言的词干分析器,OpenNLP和Gate项目也可能对您有所帮助。另外,你打算如何“把它们切碎”?这比大多数人认为的要棘手一些,因为有标点符号、所有格等等。而且,在许多语言中,仅在空格上拆分根本不起作用。关于这一点,也可以看看OpenNLP。

另一件要考虑的事情是,仅仅比较两个文档的不间断单词可能不是获得良好相似性的最佳方法,这取决于您实际尝试做什么,因为您丢失了位置信息。例如,一种常见的抄袭检测方法是将文档分成n个标记的块,并对这些标记进行比较。有一些算法可以让您以这种方式同时比较多个文档,这比在每个文档之间进行成对比较要高效得多。

票数 4
EN

Stack Overflow用户

发布于 2009-11-06 13:48:06

我想Lucene可能就是你想要的东西。根据我的经验,它很容易使用。

编辑:我只是重读了这个问题,并进一步思考了一下。Lucene是一个面向java的全文搜索引擎。然而,我不太确定为了你想要做的事情而改变它的用途会有多难。无论哪种方式,它都可能是一个很好的资源,可以开始研究并从那里开始。

票数 1
EN

Stack Overflow用户

发布于 2009-11-06 13:48:30

我不知道有没有预置的引擎,但是如果你决定使用自己的引擎(例如,如果你找不到预写的代码来做你想做的事情),搜索"Porter Stemmer“应该会让你开始研究一个算法来合理地去除(大多数)后缀。

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

https://stackoverflow.com/questions/1685659

复制
相关文章

相似问题

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