2014-02-09 4 views
6

По крайней мере, 3 типа п-граммы можно рассматривать для представления текстовых документов:Bytes vs Characters vs Words - какая гранулярность для n-граммов?

  • уровне байтов н-грамм
  • символьного уровня н-грамм
  • слово уровня п-г

Мне непонятно, какой из них следует использовать для заданий (кластеризация, классификация и т. Д.). Я где-то читал, что n-граммы уровня персонажа предпочтительнее n-граммов на уровне слов, когда текст содержит опечатки, так что «Мэри любит собак» остается похожей на «Mary lpves dogs».

Существуют ли другие критерии для выбора «правильного» представления?

ответ

4

Оценка. Критерием выбора представления является любых работ.

Действительно, уровень символов (! = Байты, если только вы не заботитесь только на английском языке), вероятно, является наиболее распространенным представлением, поскольку он является надежным для написания различий (которые не должны быть ошибками, если вы посмотрите на историю; изменения). Таким образом, для исправления правописания это работает хорошо.

С другой стороны, Google Books n-gram зритель использует n-граммы уровня слов на своем корпусе. Потому что они не хотят анализировать орфографию, но используют термин с течением времени; например «уход за детьми», где отдельные слова не так интересны, как их сочетание. Было показано, что это очень полезно в машинных переводах, часто называемых «моделью магнита холодильника».

Если вы не обрабатываете международный язык, байты также могут иметь смысл.

2

Я бы сразу отбросил n-граммы уровня байта для задач, связанных с текстом, потому что байты не являются значимым представлением чего-либо.

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

Что касается текстовых n-граммов, они могут выполнять те же самые задачи и многое другое, но им нужно гораздо больше места для хранения. Например, вам понадобится до нескольких гигабайт для представления в памяти полезного подмножества английского слова 3 грамма (для задач общего назначения). Тем не менее, если у вас ограниченный набор текстов, с которыми вам нужно работать, n-граммовые уровни на уровне слов могут не требовать большого объема памяти.

Что касается вопроса об ошибках, то достаточно большое слово n-grams corpus также будет включать и представлять их. Кроме того, существуют различные способы сглаживания для решения проблемы разреженности.

Есть и другие проблемы с n-граммами, так как они почти никогда не смогут захватить весь необходимый контекст, поэтому будут только приближать его.

Вы можете узнать больше о n-граммах в классическом Foundations of Statistical Natural Language Processing.

2

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

В общем, для классификации текста слово ngrams поможет немного со смысловым смысловым смыслом, где символьные ngrams будут легко запутаны, а ваши функции могут быть полностью двусмысленными. Для неконтролируемой кластеризации это будет зависеть от того, насколько вам нужны ваши кластеры, и на какой основе вы хотите конвертировать документы. Я нахожу, что это происходит, удаление стоп-логов и слово «bigrams» хорошо работают в задачах кластеризации без контроля над довольно крупными корпусами.

Характерные нграммы отлично подходят для нечеткой последовательности строк небольших строк.

Мне нравится думать о наборе граммов как о векторе, и представьте себе сравнение векторов с граммами, которые у вас есть, а затем спросите себя, поддерживает ли то, что вы сравниваете, достаточно контекста, чтобы ответить на вопрос, на который вы пытаетесь ответить.

HTH

Смежные вопросы