检查字符串是否存在任何法术错误

时间:2015-02-03 13:59:43

标签: c# wpf string mapping match

我遇到的情况是我以字符串格式获取数据(地理区域的名称)。(例如: - 亚洲,澳大利亚)有时我也会获得超过1个区域的字符串(例如: - 欧洲和非洲,北美和德国等)。这些地区的分隔符也有所不同,但区域保持不变(例如: - 亚洲和非洲,亚洲 - 非洲,亚洲/非洲等)。主要问题是这些数据可能不一致。它也拼错了。(例如: - 太平洋/太平洋等)

现在我需要将所有这些区域映射到一组存储桶中,但到目前为止我必须手动执行此操作。有没有办法可以至少在某种程度上自动化这些字符串的映射?我试图使用soundex函数,但我决定反对它,因为美国或美国或美国显示不同,奥地利和澳大利亚显示相同。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

您是否考虑过使用(模糊)搜索引擎? (例如Lucene)。

为此,我会做以下事情:

  1. 每个区域创建1个文档,其中包含对所述区域有效的所有同义词。 (确保每个同义词在整个索引中都是唯一的)
  2. 根据您对多区域字符串的规则集标记同义词(在标点符号上拆分应该是一个好的开始)
  3. 使用相同的标记化规则搜索索引上的每个输入。
  4. 最后,你会得到最高分的分数。

    您可以使用FuzzyQuery处理拼写错误(例如,如果输入中允许错误),则将编辑距离作为参数。

    请记住,无论你做什么,如果你无法控制输入的质量,你会得到一些(读:可以很多)误报。

答案 1 :(得分:0)

我会拼写检查 spell check in code behind
从那里创建同义词
计算拼写错误的单词
从最常见拼写错误的同义词开始

您也可以使用levenshtein距离查找相似的单词

即使有英文我也不推荐soundex。