python - 如何按编辑距离对句子进行分组?

标签 python machine-learning nlp cluster-analysis edit-distance

我有一大组(36k 句子)句子(文本列表)及其 POS 标签(POS 列表),我想使用编辑距离/Levenshtein 对 POS 列表中的元素进行分组/聚类:

(例如 Sentx POS 标签= [CC DT VBZ RB JJ]、Senty POS 标签= [CC DT VBZ RB JJ] )在簇编辑距离 =0 中,

while ([CC DT VBZ RB JJ], [CC DT VB RB JJ]) 处于簇编辑距离=1。

我了解聚类算法的工作原理,但我很困惑如何在 python 中解决此类问题以及如何将聚类存储在数据结构中以便我可以轻松检索它们。

我尝试创建一个矩阵(测量每个句子与语料库中所有句子的距离),但处理时间很长。

最佳答案

只有一组有限的 POS 标签。

不使用编辑距离,只计算一次 POS-POS 相似度矩阵。一次。您甚至可能想要编辑所需的矩阵,例如使两个POS标签实际上相同,或者增加两个标签的差异。

将其存储在 numpy 数组中,将所有向量转换为索引,然后使用该查找表计算相似性。出于性能原因,请尽可能使用 numpy,并在 cython 中编写性能关键代码,因为 Python 解释器非常慢。

关于python - 如何按编辑距离对句子进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44099095/

相关文章:

windows-vista - 多种语言的Vista语音识别

python - Word2vec Gensim 准确度分析

python - 在多个机器人框架测试中使用一个浏览器 session

python - 如何在 Fabric 中使用额外的 env.roledefs 键?

python - 尝试使用 python : xml. etree.ElementTree.ParseError : syntax error: line 1, 解析 xml 时出错

machine-learning - 如何调优SVM Rank参数?

algorithm - 为什么在 Baum Welch 算法中使用隐马尔可夫模型与马尔可夫模型

python - 运行 INSERT ... ON DUPLICATE KEY UPDATE 时出错

python - Keras 自动编码器

machine-learning - 组合从多个模型中提取的特征集