Как сгруппировать похожие текстовые токены - PullRequest
0 голосов
/ 04 ноября 2018

Я работаю над проектом по кластеризации похожих текстовых токенов. Цель состоит в том, чтобы сгруппировать токены, которые могут быть опечатками, а также токены с одинаковым написанием. Вот фрагмент моих данных и ожидаемой кластеризации:

John (cluster 1)
Mike  (cluster 2)
Joe  (cluster 1)
Jon  (cluster 1)
Jony  (cluster 1)
Ajon  (cluster 1)
Brown  (cluster 3)

Я просто пинаю шины при кластеризации, поэтому я не уверен, как мне добиться этого. Просматривая различные методы кластеризации в ScikitLearn, я наткнулся на AffinityPropagation, чтобы предварительно вычислить сходство, но он не подходит для большого набора данных (у меня есть ~ 200k токенов). Всем остальным алгоритмам кластеризации нужны векторы, но я не уверен, как генерировать функции из этих токенов.

Любое руководство здесь будет очень благодарным.

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Я не думаю, что кластеризация - это то, что вы должны здесь делать.

Потому что такие методы, как k-mrans заставляют каждую точку в «кластер». И это, вероятно, не то, что вы хотите.

Вы также столкнетесь с проблемой, что транзитивно почти все «похоже». Существует множество игр, в которых нужно превращать одно слово в другое по одной букве за раз.

Нестабильная попытка сначала определить некоторые хорошие значения (например, по частоте), а затем решить, с каким допуском объединить альтернативы. Но без переходных операций. Это проще , чем кластеризация и быстрее .

0 голосов
/ 04 ноября 2018

Вам нужна функция сходства, которая кодирует интуицию, и токены, которые отличаются только парой букв, могут быть ошибочными.

Один из способов сделать это:

Вы можете преобразовать каждый токен в вектор с 26 измерениями (по одному на каждую букву), и каждый элемент представляет количество раз, когда данная буква появляется в токене.

Жетоны, отличающиеся одной буквой (возможно, орфографические ошибки), будут находиться близко друг к другу в этом пространстве признаков, потому что будет отличаться только один элемент массива.

...