【发布时间】:2014-01-06 02:29:24
【问题描述】:
所以我的数据集目前如下所示:
['microsoft','bizspark'],
['microsoft'],
['microsoft', 'skype'],
['amazon', 's3'],
['amazon', 'zappos'],
['amazon'],
.... 等等。
现在我想做的是将这些相互关联起来,使用 Levenstein 距离来计算单词分数。
现在我将遍历所有列表并将距离与以下列表进行比较。
microsoft -> ['microsoft','bizspark'], ['microsoft'], ['microsoft', 'skype'],
amazon -> ['amazon', 's3'], ['amazon', 'zappos'], ['amazon'], ....
问题是如何做到这一点?我应该逐字计算每个列文斯坦距离,即['amazon','zappos']和['microsoft','bizspark'],我首先会得到对:(amazon,microsoft),(amazon,bizspark ), (zappos, microsoft, (zappos, bizspark) 并计算每对的距离。
或者我真的应该从这些字符串中创建字符串然后计算距离吗?
然后我应该得到一个带有距离的 NXN 矩阵:
['microsoft','bizspark'] | ['amazon', 'zappos'] ....
['microsoft','bizspark'] 1 | ?
_-------------------------------------------------------------------------
['amazon', 'zappos'] ? | 1
...
....
那么我该如何应用聚类来确定截止阈值?
讨论了一个使用单个单词的建议here
但我不知道如何处理单词列表!?
请注意,关于实现,我使用 Python 库,例如 Numpy、Scipy、Pandas 并根据需要使用。
【问题讨论】:
-
这可能更适合 stats.stackexchange.com,直到您确定要实现的目标。
-
查看 jellyfish 库。它提供了其他距离度量,例如我个人认为更有用的 jaro-distance。
标签: python pandas nlp cluster-analysis