最佳答案
听起来您想要做的是从文本中删除“stop words ”。您可以找到list of English stopwords在链接处。根据您使用的停用词数量,创建 HashSet 可能会更有效。的单词,这样您就可以在恒定时间内判断一个单词是否是停用词(通过使用 contains() 函数),这意味着过滤整个文本将花费单词数的线性时间。这是一个如此简单的操作,我怀疑您是否会找到一些库来完成它,但它不会花很长时间。
在选择使用哪些词方面......这实际上取决于您想要做什么。如果您正在 bag of words model 上执行某种机器学习算法,那么你真的必须尝试不同的单词选择,看看哪些单词导致的验证错误最少。就上下文而言,确实不需要太多言语。任何英语说得好的人都可以告诉你何时漏掉了“the”或“a”或“an”。可能有一些常用词对于某些消歧很重要,但根据您的应用程序,它们可能是也可能不是必需的。例如,如果你想知道谁做了某件事,那么消除“他”、“她”等可能是一个问题,但如果你只关心某某行为是否发生而你并不真正关心关心是谁干的,那么去掉代词就可以了。
关于Java:API 中的删除常用词方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706909/