2010-04-25 61 views
1

相关:Java:remove-common-words-method in the API?

  1. Forum post

之前重新发明轮子,我需要知道这样的方法是否存在。按照list之类的清单来剥离单词听起来不具有挑战性,但是有语言方面的内容,比如哪些单词在剥离时最强调,如何处理上下文?

+0

您可能有兴趣查看一下Cucumber(http://cukes.info/)的源代码,该代码使用通用语言(如使用英语)来定义测试用例。 – 2010-04-25 03:01:00

回答

2

它听起来像你试图做的是从文本中删除“stop words”。您可以在链接中找到list of English stopwords。根据您使用多少个停用词,创建HashSet个单词可能会更有效,以便您可以通过使用contains()函数来确定某个单词是否为常量中的停用词,这意味着过滤整个文本将花费单词数量的线性时间。这是一个非常简单的操作,我怀疑你会找到一些库来做,但不应该花很长时间。

在选择使用哪个单词方面......这取决于你想要做什么。如果您在bag of words model上执行某种机器学习算法,那么您必须尝试对单词进行不同选择,并查看导致最小验证错误的选项。就上下文而言,很多单词并不需要。任何讲英语的人都可以告诉你何时放弃了“the”,“a”或“an”。可能有一些对于某些消歧很重要的常见词汇,但取决于您的申请,它们可能也可能不必要。例如,如果你想知道谁做了什么,那么消除“他”,“她”等可能是一个问题,但如果你只关心这样的行为是否发生,而你并不真正关心谁做了,然后消除代词就好了。

相关问题