假设我们有一个包含多个事物描述的列表。描述由逗号分隔的单词组成。让我们以下面的列表为例(每一行都是单独的描述):
white, leather, round
black, plastic, rectangular
wood, rectangular, brown
...
我们希望将它们解析为以下结构:(颜色,材质,形状)
前两个描述可以直接映射到我们的结构中。但第三个不能。因为值的顺序不同:材料,形状,颜色。
所以实际的问题是:我们如何检测这些不规则的条目并解析它们?
我想我们必须以某种方式检测每个单词所描述的部分。但我甚至不知道在哪里以及如何开始。我也非常感谢任何提示,算法和论文(关于相关算法)。
编辑:抱歉忘了提及没有已知和固定的词汇表。在不同的类别中可能会有相同的单词。 但是,我认为我错过的最重要的事情可能是:大多数条目是定期的。所以我想我们可以用某种方式来发展字典。
答案 0 :(得分:2)
没有某种限制,这是一个不可能的问题。假设你有某种字典来对词进行分类(可能含糊不清),你可以取得一些进展。以下是算法的概述:
答案 1 :(得分:1)
对于第一个婴儿步骤,我的想法是建立颜色,材料和形状的词典,然后根据这个词典进行解析。
否则,您无法检测哪个词属于哪个类别
答案 2 :(得分:0)
从三个单词列表,材质,颜色和形状开始。对于要解析的每一行,尝试将每个条目与所有三个列表中的单词进行匹配。当你有匹配时,将它放入相关的结构字段中。如果您有2个匹配项,请将第三个匹配项附加到不匹配的列表中。如果你可以匹配少于2个条目,那么跳过那一行并在第二次传递中尝试使用希望更大的列表。如果您无法在第3个传递之后解析该行,则要求用户解析该行并将条目附加到相关列表中。
答案 3 :(得分:0)
在每个位置保留三个单词列表。给定新条目,基于其在该列表中的频率(绝对频率和/或相对于其总出现次数)对每个列表的每个单词进行评分。对于具有最高分数的单词列表组合,将该单词与该列表匹配。在剩下的两个单词和两个列表中重复。然后将最后剩余的单词与最后剩余的单词匹配。