4

如果我有一段英文文本,清除所有“填充”词的最佳方法是什么,例如“the, it, or, we, us”等……只留下可行的词文本的真实、核心、内容?

我正在集思广益,根据它们在关键字组成中的相似程度自动将文本块联系在一起。

我不能成为第一个想到这一点的人。有没有一种流行的、有效的方法可以使用 C# 来完成?

更新

我试图从本质上将一个文本块链接到 n 个“相关”文本块,其中主要“内容”非常相似,以至于它可以被认为是与它相关的文本的附加信息......

4

3 回答 3

5

这个东西被称为停用词- 通常1对于理解数据不是必需的词,并且被索引器删除。

我所知道的几乎所有信息检索系统都实现了过滤这些单词的标记器。

我熟悉 java 的 lucene,它有StandardAnalyzer为你做这件事,但我假设这个分析器也存在于lucene.net中——你可能想要跟踪它并使用它。

您可能还对stemming感兴趣,例如EnglishAnalyzer也在 lucene 中完成的。


(1) 为什么通常?例如,在讽刺诙谐者中 - 似乎(根据经验)停用词对于获得良好结果至关重要。

于 2012-06-21T10:55:11.573 回答
3

如果您希望大规模完成此操作并且过滤词要不断增加,那么您可以使用像openNLP这样的 NLP

您可以使用它来删除介词,连接符等...

于 2012-06-21T10:54:51.960 回答
2

创建一个“填充词”列表。用 String.Empty 替换原始文本块列表中所有出现的任何元素。

使用 List<string> 替换字符串

于 2012-06-21T10:48:43.380 回答