1

我要解决的问题:我有一百万个单词(多种语言)和一些他们归类为我的训练语料库的类。给定单词的测试语料库(随着时间的推移,数量肯定会增加),我想在训练语料库中获得每个单词的最接近匹配,从而将该单词分类为其最接近匹配的对应类。

我的解决方案:最初,我做了这种无法扩展的蛮力。现在我想我在训练语料库(O(n))的连接上构建一个后缀树并查询测试语料库(恒定时间)。试图在python中做到这一点。

我正在寻找可以帮助我入门的工具或软件包,或者寻找其他更有效的方法来解决手头的问题。提前致谢。

编辑1:至于我如何找到最接近的匹配,我在考虑精确匹配对齐(来自后缀树)的组合,然后对于剩下的输入字符串部分,我想用仿射间隙惩罚函数。

4

1 回答 1

0

您使用什么距离度量来进行最接近的匹配?

有一些论文介绍了如何使用后缀树进行编辑距离搜索。对于每个后缀,都有一个编辑矩阵的扩展,并且可以对论文进行排序,以便让人们对后缀树进行排序搜索,以按照距离增加的顺序找到匹配项。

一个例子是Top-k String Similarity Search with Edit-Distance Constraints (2013) https://doi.org/10.1109/ICDE.2013.6544886 https://scholar.google.com/scholar?cluster=13387662751776693983
提出的解决方案避免在添加列时计算表中的所有条目。

在您的问题中,似乎对于每个单词都有适用于它们的类,如果它们不依赖于上下文,那么上述方法将起作用,而单词到类映射将是所有需要的。但是,如果它们依赖于上下文,那么这似乎更接近于词性标记。

于 2019-06-25T17:34:18.507 回答