2016-04-04 31 views
0

在C#中工作我有一个字符串数组。其中的一些字符串是真实的字,其他的则完全是无稽之谈。我的目标是想出一种方法来确定哪些词是真实的,哪些是错误的。在C#中,建立一个字符串是否是一个真正的单词的建议方法是什么?

我已经计划在网上找到某种单词列表,我可以将它带入我的项目,变成列表并进行比较,但当然在“C#词典”中输入的却是一个无关的主题!我不需要100%的准确率。

正规化问题: 在C#中,建议确定字符串是否是真正的单词的建议方法是什么?

建议和指导非常感谢!

解决方案

感谢伟大的答案,他们都是非常有用的。碰巧事情要做的是用不同的措辞提出同样的问题。寻找C#拼写检查提出了一些很好的链接,我最终使用了Nhunspell,你可以通过NuGet获得它,并且非常易于使用。

+1

寻找“C#拼写检查”,这是你基本上在做什么,产生了一些有希望的结果。搜索“开源拼写检查”也有一些。 –

+1

你对“真实单词”一词的使用表明有三种东西:非单词,不真实的单词和真实的单词。这是你打算做出的区别吗?你能为我描述一个区分非单词和单词的测试,还有第二个测试能区分真实的单词和非真实的单词吗?例如,“%&(*&”是一个非单词,“frobbenization”是一个非真实的单词,“汉语/汉语”是一个真正的单词? –

+0

@EricLippert这是一个有效的观点。不,这不是我打算做的区别。给出的答案已经非常好,我猜想其中一个答案会在我以后尝试时为我工作! – MGDavies

回答

1

问题是“Dictionary”是框架内的一种类型。所以,用这个词搜索将会得到各种结果。你基本上想要做的是拼写检查。这将决定一个单词是否有效。

正在搜索C#拼写检查产生了一些有希望的结果。搜索开源拼写检查也有一些。

我以前在VB6项目中实现了一个开源项目。我认为这是ASpell。我没有必须在C#中使用拼写检查库,但我确定有一个,或者至少有一个使用.NET包装器来简化实现。

如果您在拼写检查解决方案的词典/词汇文件中不存在特殊词语,可以添加它们。

1

要做到这一点,我会使用免费提供的字典为Linux(谷歌搜索“Linux字典”应该让你在正确的轨道上),读取和解析文件,并将其存储在C#System.Collections.Generic.HashSet采集。我可能会将所有东西都存储为.ToUpper()或.ToLower(),但这取决于您的要求。

然后您可以检查任何字符串是否在HashSet中有效。

1

我不知道在Windows上默认包含任何单词列表文件,但大多数类Unix操作系统都包含一个用于此目的的words file。有人还发布了words file on github建议用于Windows项目。这些文件是简单的单词列表,每行一个。

相关问题