Хранить токенизированный текст в БД? - PullRequest
2 голосов
/ 08 ноября 2010

У меня простой вопрос.Я немного ползаю, чтобы новый контент появлялся каждые несколько дней.Я написал токенизатор и хотел бы использовать его для некоторых целей анализа текста.В частности, я использую инструмент моделирования тем Маллета, и одна из возможностей состоит в том, чтобы токенизировать текст в токены, прежде чем можно будет выполнить дальнейшую обработку.С количеством текста в моей базе данных, это занимает значительное количество времени для токенизации текста (здесь я использую регулярное выражение).

Таким образом, является ли нормой хранение токенизированного текста в БД, так что токенизированные данные могут быть легко доступны, а токенизация может быть пропущена, если они понадобятся мне для других целей анализа текста, таких как моделирование тем, теги POS?Каковы минусы этого подхода?

Ответы [ 2 ]

1 голос
/ 08 ноября 2010

Кэширование промежуточных представлений

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

Медленная токенизация

Тем не менее, я удивлен, что токенизация действительно медленная для вас, так как материал, следующий за токенизацией, обычно является настоящим узким местом.

Какой пакет вы используете для токенизации? Если вы используете Python и написали свой собственный код токенизации, вы можете попробовать один из токенизаторов, включенных в NLTK (например, TreebankWordTokenizer ).

Еще одним хорошим токенизатором, хотя и не написанным на Python, является PTBTokenizer , включенный в Stanford Parser и Stanford CoreNLP сквозной трубопровод NLP.

0 голосов
/ 11 ноября 2010

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

...