Size: a a a

Natural Language Processing

2019 December 29

AB

Arcady Balandin in Natural Language Processing
Sergey Shulga
Народ, ваше мнение- есть набор синонимов к ключевым словам, ну условно для фразы "мама мыла раму" к каждому слову есть словарь синонимов. Далее с помощью простого генератора я получаю набор предложений с подставкой и все ок. Проблема начинается с использованием предлогов, если фразы посложнее. Куда смотреть, если я хочу, чтобы алгоритм при генерации выбирал правильные предлоги? Пока в голову лезет только обучить какую-нибудь bilstm сетку для корректной подстановки. Или есть варианты получше?
Честно говоря меня ваша задача тоже интересует только для английского. И у меня нет набора синонимов. Я хочу просто от балды генерить
Я люблю яблоки
Ты любишь бананы
И.т.п.
источник

YB

Yuri Baburov in Natural Language Processing
Yuri Baburov
был где-то маленький русский framenet
источник

AB

Arcady Balandin in Natural Language Processing
predicate argument structure (valency pattern)

Не знал про термин в скобках
источник

YB

Yuri Baburov in Natural Language Processing
Arcady Balandin
Если без нейронок то надо двигаться в сторону вычленения фреймов по типу FrameNet. Должна быть какая то база русских глаголов с отпечатком набора аргументов для каждого глагола. И сгруппированных по фреймам.

Типа А любит Б (винительный)
Б (дательный) нравится А (винительный)
ну а насчёт первого актанта — дополнения сказуемого — эта информация в морфологии есть, переходный/непереходный глагол
источник

AB

Arcady Balandin in Natural Language Processing
Фигасе 150 core roles. Филлмора кондратий хватит.
источник

YB

Yuri Baburov in Natural Language Processing
Arcady Balandin
predicate argument structure (valency pattern)

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

AB

Arcady Balandin in Natural Language Processing
Ещё в школах начнут такое преподавать. Типа 6 падежей устарели, вот вам core roles
источник

DK

Denis Kirjanov in Natural Language Processing
Yuri Baburov
ну а насчёт первого актанта — дополнения сказуемого — эта информация в морфологии есть, переходный/непереходный глагол
только морфология тут ни при чем )
источник

YB

Yuri Baburov in Natural Language Processing
Denis Kirjanov
только морфология тут ни при чем )
я перепутал что-то?
источник

DK

Denis Kirjanov in Natural Language Processing
Yuri Baburov
я перепутал что-то?
ну, переходность -- это синтаксическое свойство
источник

AB

Arcady Balandin in Natural Language Processing
Морфологический разбор сейчас наверное не нужен. Достаточно взять орфографический словарь целиком. Если лексикон не содержит новых слов
источник

YB

Yuri Baburov in Natural Language Processing
Denis Kirjanov
ну, переходность -- это синтаксическое свойство
да я согласен, я не спорю :)
http://opencorpora.org/dict.php?act=edit&id=33652 тег "tran"
источник

YB

Yuri Baburov in Natural Language Processing
и я правда не знаю, какое применение в морфологии находит это свойство, что его в морф словарь положили.
источник

DK

Denis Kirjanov in Natural Language Processing
никакого, дань традиции )
источник

ck

cnstntn kndrtv in Natural Language Processing
Vic
Видел модель на уже обученной модели сеткой генерит, на гитхабе, как раз для задачи аугментации данных. Что-то типа sent2vec гуглить
Спасибо
источник

ck

cnstntn kndrtv in Natural Language Processing
Vic
Видел модель на уже обученной модели сеткой генерит, на гитхабе, как раз для задачи аугментации данных. Что-то типа sent2vec гуглить
Извините, если глупый вопрос. А как мне sent2vec поможет генерировать, аугментировать предложения?
источник
2019 December 31

A

Alexander in Natural Language Processing
Ребят, у меня здесь NLP задача и я был бы очень благодарен если бы подсказал в каком направлении двигаться!

Есть значит у меня телефонные разговоры операторов с абонентами (речь уже преобразована в текст (английский), и уже произведена классификация того что говорит абонент, и то что говорит оператор).  Задача выявить чем абонент разочарован, чтобы при последующим звонке того же абонента, оператор выдел на экране в чём разочарование состояло.

Сейчас все реализовано следующим образом: с помощью regular expressions ведётся поиск отрицательных слов, типа "разочарован", "зол", и т.д. Далее от каждого такого слова отчитывается десять  слов в право и десять в лево (пунктуации в тексте нету, поэтому нельзя просто выбрать интересуемое предложение). Получаем кусок текста который потенциально несет negative sentiment. Если в одном разговоре таких слов много, то будет создано много кусков текста. Далее используется Vader из NLTK для скоринга каждого такого куска текста. Выбирается наиболее негативный кусок и он и показывается оператору, когда этот же абонент звонит в следующий раз.

Алгоритм не идеальный по многим причинам. Основная:

Vader приписывает значительный отрицательный скор, обрывкам теста, которые по сути являются набором бессвязных слов. Понятно что Vader не особо в этом виноват, так как такое качество исходного текста. К слову, я не могу повлиять на способ преобразования звука в текст :(
источник

A

Alexander in Natural Language Processing
Какие есть идеи на сегодняшний день:
1) Попробовать другие pre-trained модели (какие порекомендуете?).
2) Попробовать отследить где начинается предложение с негативным словом и где оно заканчивается (есть ли разработанные модели для этого?).
3) Модель которая бы говорила что-то вроде "этот кусок текста мусор и его оценивать не надо, его выкидываем".
4) Topic modeling. То есть все негативные куски текста классифицировать по топикам.
5) Выкинуть этап с regular expressions.
6) Сделать тестовые данные для модели, а не использовать pre-trained модель
источник

A

Alexander in Natural Language Processing
Если честно, то мне кажется 1) не получится реализовать адекватно.
Так как мусора в кусках текста на столько много, то реализовать 2) тоже будет проблематично.
3) - не решение проблемы на 100% и опять же вопрос как реализовывать.
4) - не знаю как реализовывать, но наверное это лучшее что можно было бы предложить. Оператор будет видеть не какой-то неструктурированный набор текста, а осмысленное словосочетание ("дорогие услуги", "неудобный сервис", и т.д.).
5) У меня сомнения на счёт этого. Regular expressions находят хотя бы негативные слова из тонны мусора, без этого мне кажется любой последующий алгоритм будет плохо работать. То что успел понять точно - выкидывание regular expressions ведёт к значительному замедлению расчётов.
6) Думаю это не повредит и например способ 4) не будет без этого работать. На это уйдут месяцы, и хорошо бы знать, что они были потрачены не зря и есть общая идея как улучшить результаты.

В общем, спасибо что дочитали до конца и я открыт к любым вашим идеям.
источник

NS

Nikolay Shmyrev in Natural Language Processing
Без анализа звука эта задача не решится.
источник