关系数据库 - 同义词表,如何处理搜索中一个单词的不同形式?

时间:2018-01-04 17:59:50

标签: relational-database synonym

我对产品有描述 - 描述基本上是逗号分隔的字符串(如,E124, water, tatrazin等)。我需要将这个描述分成几部分(用逗号分隔),然后分别对每个部分(单词)进行一些分析。我们将此“analysis of one words”命名为“algorithm”。

所以,算法基本上已经实现了,但是,它并不能理解所有的单词。它有一些它理解的“基本词”,它不理解同义词和不同形式的词。例如,让我们对该产品进行成像,其中包含“tatrazin”。 algorithm适用于“tatrazin”,但E102也是“tatrazin”,而“tatrazin”可能有其他同义词。

所以,为了解决这个问题,我想创建同义词数据库,在将单词发送到“algorithm”之前,我想用“已知的同义词”替换它们。

我将使用关系数据库,我的同义词表将是这样的:

id, word_id, text, category(已知单词的类别值为'base',未知单词为'synonym')

1, 1, tatrazin, base
2, 1, E110, synonym
etc.

我认为这应该有效。也许“基础”单词将存储在不同的表和“同义词”中。

我不知道如何解决的唯一问题是,有时单词也有不同的结尾和其他形式(例如,复数或过去的形式等)。应如何对待?

P.S。这不是英语,而是另一种语言,但将来应该支持不同的语言。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用像stemmerNet

这样的词干库

词干操作将每个单词返回其基本形式。 它支持多种语言。
对于其他含义,您可以使用WordNet这是英语语言,您可以找到其他语言的其他词典。
我希望这个帮助