Появилась возможность вкатиться в NLP - есть потенциальный заказчик на некого чат-бота. Для начала решил подзадрочить теорию и инструменты. Выбор пал, как несложно догадаться на NLTK и соответствующую книгу. Тема обработки естественных языков весьма обширна и вкатывание в нее займет немало времени, поэтому решил завести отдельный тред. Возможно, он будет полезен другим анонам, желающим разобраться с NLP. Если такие найдутся, предлагаю сделать тред номерным и начать пилить шапку. Для начала неплохо было бы составить список инструментов и литературы. То, с чего начал я: http://www.nltk.org/book/
>>772995 >пидерский английский с его примитивно-уебищной грамматикой то это хуйня. Ценитель изящной словесности закукарекал. Английский де-факто международный язык науки и техники как минимум.
>>773016 >ну че Словестный мусор. Выбрасываем. >псоны Полнотекстовый поиск по словарю -> пацаны. Существительное, множественное число. >пендосы Полнотекстовый поиск по словарю сленга -> американцы. Существительное, множественное число. Второе подряд -> первое было обращением. >соснулей Полнотекстовый поиск по словарю сленга -> соснули. Глагол. >штоле Полнотекстовый поиск по словарю -> что-ли. Вопросительное слово. Возможно, предложение вопрос. >епту Словестный мусор. Выбрасываем. >? Вопросительный знак + вопросительное слово - точно вопрос.
Отбрасываем обращение, убираем вопросительное сслово, так как это и так вопрос. Результат: >американцы соснули?
>>773023 Есть и есть, для меня это просто возможность вкатиться в интересующую меня тему. >псевдонаучной кукаретической хуйни Это ты о чем, об NLP? В чем антинаучность?
>>773032 так ты семантику хочешь понимать? если да, то ищи другой натуральный язык, туже латынь например. а антинаучность в том, что кроме пиздежа ничего толком они представить не могут.
>>773021 >Полнотекстовый поиск по словарю -> пацаны Или пионы. Ну ты понел. >Полнотекстовый поиск по словарю сленга -> соснули. С большой вероятностью не найдет, сленг узкоспециализированный и исковерканный.
И да, твои аргументы равно применимы к первому выражению на английском.
>>773034 Я хочу задать пользователю заранее подготовленный вопрос, проанализировать его ответ, и, в зависимости от результата, задать следующий вопрос, выбранные из некоторого конечного множества вопросов. То есть, по сути, реализовать скрипт продаж, но с ботом вместо человека. Ну и сами вопросы должны кастомизоваться (тут имя вставили, там правильное обращение использовали, вот это вот все).
>>773046 Да, в каком-то смысле это экспертная система, только очень простая. Ну и в любом случае, нужно распознавать тексты на естественных языках - вряд ли ты заставить американских бабушек писать боту sql запросы, лел.
>>774703 Я хочу разобраться с предметной областью, поэтому лучше не отвлекаться на изучение нового языка, а воспользоваться привычными инструментами. Потом, если питона станет недостаточно, буду искать альтернативы.
Ребзя, привет. Есть у меня небольшой текст из нескольких предложений на русском языке, хочу выбрать из него ключевые слова. Удаляю знаки препинания из текста, разбиваю на слова, удаляю всякий мусор (предлоги, союзы, и т.п.). Теперь надо привести все слова к общему виду (чтобы не было несколько разных слова "квартира"/"квартиру"/"квартире"). Как проще всего это сделать? Никак? Извините, если не по теме, ну и читать книжки нет времени совсем, нужно сделать быстро. Есть готовые алгоритмы?
>>774991 я сравнивал со словарем из opencorpora. Там все слова в парадигме даны. Только вот один хуй слово типа "посол" в одной изпарадигм дает "после", что заставляет его путать с предлогом "после". Ну и прочая хуйня, куча таких примеров будет..
>>774994 Я тебе один умный вещь скажу: NLP, data mining, и прочая хуита не дают никогда 100%-ый результат. Всегда найдется случай для которого именно твоя система не сработает. Трэшхолд не тот или ещё чего. Изменишь его - отвалится в другом месте. Просто смирись. Это, конечно, не значит, что количество ложных срабатываний нельзя уменьшить, но и полностью их не исключить.
Конкретно в твоем случае с "посол" - ищи другой стеммер (который будет работать "не так" для какого-нибудь другого случая).
>>774994 Как сказали, можешь использовать стеммер. Он не будет ошибаться особо, процентов 85-97 тебе выдаст. Можешь посмотреть стеммер от яндекса, но сомневаюсь, что тот бинарник особо лучше Snowball stemmer, хотя в статье вроде так написано.
Можно использовать pymorphy2. Сделано на словаре из опенкорпора
Можешь сделать свой велосипед из биграмм, триграмм и обучить на данных из той же opencorpora, можешь нейронку забацать, обучить побуквенно, чтобы выдавала итоговую форму.
>>775112 Но работает же и быстрое, если просто убрать окончания, то сойдет >>775113 theano для части задач быстрее и предпочтительнее http://fastml.com/torch-vs-theano/ . Многие (большинство?) вообще на спарке все гоняют.
Спасибо большое за ответы! Погуглю стеммеры. Особо высокая точность мне не нужна, пишу нативное приложение на Android (то есть на java), какой из вышеперечисленных мне подойдет?
Тема обработки естественных языков весьма обширна и вкатывание в нее займет немало времени, поэтому решил завести отдельный тред. Возможно, он будет полезен другим анонам, желающим разобраться с NLP. Если такие найдутся, предлагаю сделать тред номерным и начать пилить шапку. Для начала неплохо было бы составить список инструментов и литературы.
То, с чего начал я: http://www.nltk.org/book/