классифицировать набор фраз в набор похожих фраз - PullRequest
0 голосов
/ 26 декабря 2010

У меня есть несколько приложений, которые генерируют текстовую информацию трассировки (журналы) для журналов файлов. Информация трассировки является типичным стилем printf () - то есть есть много записей журнала, которые похожи (тот же аргумент формата, что и у printf), но различаются в тех случаях, когда строка формата имеет параметры.

Каким будет алгоритм (URL, книги, статьи, ...), который позволит мне анализировать записи в журнале и классифицировать их по нескольким лоткам / контейнерам, где каждый лоток имеет один связанный формат?
По сути, я хотел бы преобразовать необработанные записи журнала в экземпляры (formatA, arg0 ... argN), где formatA совместно используется многими записями журнала. Формат A не обязательно должен быть точным форматом, используемым для создания записи (тем более, если это упрощает алгоритм).

Большая часть литературы и веб-информации, которую я нашел, имеет дело с точным соответствием, максимальным соответствием подстроки или k-разностью (с k известным / фиксированным заранее). Кроме того, он фокусируется на сопоставлении пары (длинных) строк или одного выходного лотка (одно совпадение среди всех входных данных). Мой случай несколько отличается, так как я должен выяснить, что представляет (достаточно хорошее) совпадение (как правило, последовательность прерывистых строк), а затем классифицировать каждую входную запись на одно из обнаруженных совпадений.

Наконец, я не ищу идеальный алгоритм, но что-то простое / легкое в обслуживании.

Спасибо!

1 Ответ

1 голос
/ 26 декабря 2010

Вы можете использовать знаменитые Мешок слов техник для групп помощи по текстам, используя разреженную матрицу, представляющую в каждой строке текст (как правило, текст создается с помощью средства портера для улучшения результатов). После вычисления пакет слов, где вам нужно посчитать, сколько раз каждое слово появляется в каждом фрагменте текста, а затем вычислить итоги матрицы по строкам и столбцам, вычисляя tf-idf для каждой ячейки, в Для того, чтобы обратить внимание на угловое расстояние на текстах, это тот, который лучше всего работает. Сделав все это, вы можете выполнить алгоритм кластеризации, который группирует связанные фрагменты текста, вы даже можете извлечь здесь основные ключевые слова текста. есть программа, которая делает все это автоматически, которая называется cluto , я настоятельно рекомендую это.

...