我有一个程序(C#),它生成一个字符串列表(原始字符串的排列)。大多数字符串是按预期随机分组的原始字母(即 etam、aemt、team)。我想以编程方式找到列表中真正的英语单词的一个字符串。我需要一个同义词库/字典来查找和比较每个字符串。任何人都知道可用的资源。我在 C# 中使用 VS2008。
您可以从网络下载单词列表(例如此处提到的文件之一:http://www.outpost9.com/files/WordLists.html),然后快速执行:
// Read words from file.
string [] words = ReadFromFile();
Dictionary<String, List<String>> permuteDict = new Dictionary<String, List<String>>(StringComparer.OrdinalIgnoreCase);
foreach (String word in words) {
String sortedWord = new String(word.ToArray().Sort());
if (!permuteDict.ContainsKey(sortedWord)) {
permuteDict[sortedWord] = new List<String>();
}
permuteDict[sortedWord].Add(word);
}
// To do a lookup you can just use
String sortedWordToLook = new String(wordToLook.ToArray().Sort());
List<String> outWords;
if (permuteDict.TryGetValue(sortedWordToLook, out outWords)) {
foreach (String outWord in outWords) {
Console.WriteLine(outWord);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)