我正在尝试制作一种算法,可以轻松简化并将同义词(不匹配,大写字母,首字母缩写等)组合成一个。我认为应该存在一种标准的方法来构建这样一个结构,寻找一个可能不匹配的字符串,如果字符串存在于结构中,它将返回一个规范化的字符串键。简而言之,有时可以用几种方式编写相同的概念,但我只想保留这个概念。
例如:Supose我想标准化或简化
的外观"General Director", "General Manager", "G, Dtor", "Gen Dir", ...
到
"GEN_DIR"
并仅保留此结果以供进一步参考。
顺便说一句,我认为使用键/值对构建Hash,如
hash["General Director"]="GEN_DIR"
hash["General Manager"]="GEN_DIR"
hash["G, Dtor"]="GEN_DIR"
hash["G, Dir"]="GEN_DIR"
可能是一个解决方案,但我怀疑有更优雅或适当的解决方案。
我还需要在没有任何数据库的情况下轻松地保持这种关联结构的方法,因为它会随着我找到相同单词或句子的更多不匹配而增长。我认为一种可能的方法是通过DSL定义这种结构,但我愿意接受建议。
答案 0 :(得分:0)
嗯,没有规则,至少是明确规则。
我的目标是从网上废弃一些有时输入错误或不完整的“结构化”数据。某些字段是描述,可以保留原样。但有些字段通常是“集合”但是没有正确输入(如我的例子中所示)。正如人类可以读到的那样,他立即知道它的含义并将其与其含义联系起来。
但是我想尽可能地自动化将这些可能的不匹配减少到只有一个“字符串”(或符号)的过程,例如,将它保存到数据库中。所以,我需要的是一种哈希或字典,正如sawa正确陈述的那样,我可以用来查找任何这样的脏字符串来获得规范化的字符串或符号。
当然,还需要一种方法来使这个散列(或者可能是这样)以某种方式从新的不匹配中学习并自动添加新的关联(可能它可以基于之间的距离测量)不匹配的字符串和规范化的字符串,如果低于X,则构建新的关联)。整个关联(即哈希)应该随着新的不匹配和概念的出现而增长,但是,它应该保存在任何地方(可能在xml文件中,或类似于Mori在下面回答的内容)以供将来使用。
有任何新想法吗?