2016-10-19 4 views
2

Недавно я смотрел, играя с тензорным потоком, dnns и т. Д. Теперь я пытаюсь реализовать что-то более серьезное, поиск информации из коротких предложений (инструкции врача). К сожалению, набор данных, который у меня есть, как всегда, довольно «грязный». Поскольку я пытаюсь использовать вложения слов, мне действительно нужны «чистые» данные. Возьмите один пример: «Возьмите два дня в день». Между таблеткой и каждой из них отсутствует пробел. Я реализую «улучшитель токенизатора», чтобы посмотреть на каждое предложение и предложить новую токенизацию, основанную на совместной вероятности каждого слова в предложении, учитывая частоту терминов в целом документе (tf). Поскольку я делал это сегодня, мне пришла в голову мысль: зачем писать субоптимальное решение этой проблемы, когда я могу использовать мощные алгоритмы обучения, такие как сети Lstm, чтобы сделать это для меня. Однако на сегодняшний день у меня есть только чувство, что на самом деле можно это сделать. Как мы знаем, чувства не лучше, когда речь идет о создании таких сложных проблем. Я не знаю, с чего начать: какой должен быть мой тренировочный набор и цель обучения. Я знаю, что это широкий вопрос, но я знаю, что есть много блестящих людей с большим знанием о тензорпотоке и нейронных сетях, поэтому я уверен, что кто-то либо уже решил подобную проблему, либо просто знает, как подойти к этой проблеме. Любые указания приветствуются, я не исключаю, что вы, конечно, решите это для меня :) Besos и все лучшее для сообщества тензорного потока :)Lstm, чтобы улучшить токенизацию

+0

Нормализация текста также является трудной проблемой. Из вашего примера, может ли это работать программа проверки орфографии? – Aaron

+0

Только тот, который контекстно-зависим в отношении моего набора данных. Я закодировал решение, которое работает достаточно хорошо, опубликует как предлагаемый ответ – mhnatiuk

ответ

2

Имея ту же проблему. Я решил это, используя сеть уровня символов. В основном я переписал Character-Aware Neural Language Models, выбил все «слова» -элементы и просто остался с уровнем качества.

Данные обучения: Я взял данные, которые у меня были, как бы грязные, использовал грязные данные в качестве целей и сделал их еще более грязными для создания входных данных.

Значит, ваш «Возьмите два дня в день», так как во многих случаях у вас есть чистая и аналогичная фраза, например. «Возьмите одну таблетку каждое утро», что с упомянутым режимом будет служить целью, и вы тренируете сеть на разрушенных входах, таких как «Take ae pileach mornin»

+0

Спасибо, я попробую этот подход! На данный момент я просто закодировал решение, чтобы найти правильные слова внутри слов, распознанных как орфографические ошибки pyenchant.checker.SpellCheck – mhnatiuk

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