我有一大组(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/