Size: a a a

Natural Language Processing

2021 March 09

MP

Maša Ponomareva in Natural Language Processing
Katya Artemova
Спасибо! Насколько я понимаю, на всех соревнованиях сейчас будут продлевать сроки, так что присоединиться не поздно :)
да, именно так! сроки продлеваются, приходите играть в скетчи и в другие задачи Диалога
источник
2021 March 10

PP

Parth Patel in Natural Language Processing
Anyone have any model like attendance system from image
источник

VR

Vladimir R in Natural Language Processing
Parth Patel
Anyone have any model like attendance system from image
Try CNN + LSTM
источник

VR

Vladimir R in Natural Language Processing
Приветствую всех, интересует лучшее готовое (или ближайшее к таковому) открытое решение (hard baseline), которое можно быстро кастомизировать или собрать "from scratch" или из понятных готовых компонентов (USE + annoy/faiss) под набор довольно тривиальных в настоящее время задач:

1. Семантический поиск (поиск фразы/словосочетаний по смыслу внутри некого текста или набора текстов) - интересует момент не кодирования предложения целиком, а именно поиск "подсмысла" (как поиск подстроки в тексте)
2. Тематического моделирования (для задач FAQ - если он, скажем, содержит больше 10000 страниц) - т.е. что-то вроде древовидной структуры или диаграммы зависимостей
3. Выделения терминов и условий (суть задачи №2 из этого списка) и отображение терминов в предметной области (визуализация, что-то еще)
4. Построение модели предметной области (т.е. парсинг запросов к предметной области как условий поискового запроса, выделение таких условий)
5. Моделирование диалогов (понимать, как развивается дерево общения в данной ситуации относительно предметной области, скажем перемещение внимания с одной части корпуса текстов на другое, определение темы в настоящий момент и определение переключения темы)
6. Какие-то более продвинутые методики и люди, которые этим умеют заниматься (в личку)
источник

c

care1e55 in Natural Language Processing
Смотрю сейчас на bi-LSTM с CRF для NER. Напомните, плз, почему CRF-decoder лучше, чем  seq2seq?
источник

AZ

Andrey Zakharov in Natural Language Processing
care1e55
Смотрю сейчас на bi-LSTM с CRF для NER. Напомните, плз, почему CRF-decoder лучше, чем  seq2seq?
если у тебя сущности из нескольких токенов состоят, то без crf вполне может быть так - O O I-CITY B-CITY , crf фиксит это
источник

c

care1e55 in Natural Language Processing
Да, действительно. Но только ли поэтому? В абстрактной задаче где 1 токен - 1 слово seq2seq и crf будут показывать сопоставимые результаты?
источник

VR

Vladimir R in Natural Language Processing
care1e55
Смотрю сейчас на bi-LSTM с CRF для NER. Напомните, плз, почему CRF-decoder лучше, чем  seq2seq?
Можно использовать Tager от SpaCy - возьни меньше (15 строчек, есть примеры), для него это стандартная задача, результат будет лучше чем у голой сети (или такой же)
источник

YB

Yuri Baburov in Natural Language Processing
care1e55
Да, действительно. Но только ли поэтому? В абстрактной задаче где 1 токен - 1 слово seq2seq и crf будут показывать сопоставимые результаты?
CRL поверх любого предсказателя дает небольшой прирост, вот и всё
источник

c

care1e55 in Natural Language Processing
Vladimir R
Можно использовать Tager от SpaCy - возьни меньше (15 строчек, есть примеры), для него это стандартная задача, результат будет лучше чем у голой сети (или такой же)
Интересно, посмотрю
источник

DD

David Dale in Natural Language Processing
care1e55
Смотрю сейчас на bi-LSTM с CRF для NER. Напомните, плз, почему CRF-decoder лучше, чем  seq2seq?
CRF голова используется, когда нам нужно протегировать уже имеющуюся последовательность. Это задача, которая называется sequence labelling или token classification.
Seq2seq - это задачи, когда нам на основе имеющейся последовательности нужно сгенерировать новую (и новая не обязана быть той же самой длины).

Любую задачу sequence labelling можно свести к seq2seq (а обратно - далеко не всегда). Но при этом на некоторых задачах (например, NER, POS-тэггинг, поиск грамматических ошибок и т.п.) seq2seq подход избыточен. Это значит методами стандартного sequence labelling можно решить эту задачу так же хорошо, и тогда нужно выбирать их, потому что seq2seq вычислительно сложнее и требует больше данных для обучения.
источник

DD

David Dale in Natural Language Processing
care1e55
Да, действительно. Но только ли поэтому? В абстрактной задаче где 1 токен - 1 слово seq2seq и crf будут показывать сопоставимые результаты?
Если обучающих данных мало, то seq2seq будет страшно глючить на такой задаче - например, иногда генерировать пустые последовательности или, наоборот, бесконечно повторять какой-нибудь один токен, или начнёт фантазировать и генерировать последовательность, не особо связанную со входной. А sequence labelling будет глючить поменьше, т.к. в худшем случае он несколько меток неверно поставит, а остальные нормально будут стоять. Как говорят учёные, у sequence labelling полезный inductive bias по сравнению с seq2seq.
источник

N

Natalia in Natural Language Processing
классное объяснение! :)
источник

VR

Vladimir R in Natural Language Processing
David Dale
Если обучающих данных мало, то seq2seq будет страшно глючить на такой задаче - например, иногда генерировать пустые последовательности или, наоборот, бесконечно повторять какой-нибудь один токен, или начнёт фантазировать и генерировать последовательность, не особо связанную со входной. А sequence labelling будет глючить поменьше, т.к. в худшем случае он несколько меток неверно поставит, а остальные нормально будут стоять. Как говорят учёные, у sequence labelling полезный inductive bias по сравнению с seq2seq.
Я так понимаю, главное различие в том, как считается лосс, опять же seq2seq при неправильном конфиге может вообще не дать результат, а CRF скорее даст результат, ну и соответственно раз быстрее обучается то и меньше данных нужно
источник

VR

Vladimir R in Natural Language Processing
Опять же seq2seq скорее будет запоминать правильный результат, чем учится на самом деле
источник

c

care1e55 in Natural Language Processing
Спасибо, прояснилось) Но в любом случае же можно использовать фичи полученные глубокими моделями (bi-lstm, bert) и подавать их CRF для лучшего результата и проблем не будет как с seq2seq?
источник

c

care1e55 in Natural Language Processing
Заодно их обучая
источник

DD

David Dale in Natural Language Processing
care1e55
Спасибо, прояснилось) Но в любом случае же можно использовать фичи полученные глубокими моделями (bi-lstm, bert) и подавать их CRF для лучшего результата и проблем не будет как с seq2seq?
Да, конечно.
CRF - это просто ещё один слой с хитрым декодером. Его можно использовать сам по себе, а можно - поверх других слоёв.
источник

DD

David Dale in Natural Language Processing
Vladimir R
Я так понимаю, главное различие в том, как считается лосс, опять же seq2seq при неправильном конфиге может вообще не дать результат, а CRF скорее даст результат, ну и соответственно раз быстрее обучается то и меньше данных нужно
Главное отличие в том, как генерируется ответ.
В seq2seq ответ генерируется рекуррентно, токен за токеном, пока не сгенерируется специальный токен end-of-text. При этом связь со входной последовательностью осуществляется только опосредованно - через её какое-нибудь промежуточное представление, и ещё возможно через атеншн.
В sequence labeling ответ может генерироваться одновременно, т.к. каждый токен ответа опирается в первую очередь не на другие токены ответа, а на входную последовательность, и каждый токен ответа в явном виде привязан к соответствующему токену входной последовательности. Классический пример - BERT.
источник

VR

Vladimir R in Natural Language Processing
David Dale
Главное отличие в том, как генерируется ответ.
В seq2seq ответ генерируется рекуррентно, токен за токеном, пока не сгенерируется специальный токен end-of-text. При этом связь со входной последовательностью осуществляется только опосредованно - через её какое-нибудь промежуточное представление, и ещё возможно через атеншн.
В sequence labeling ответ может генерироваться одновременно, т.к. каждый токен ответа опирается в первую очередь не на другие токены ответа, а на входную последовательность, и каждый токен ответа в явном виде привязан к соответствующему токену входной последовательности. Классический пример - BERT.
А по моему вопросу можешь дать свою аналитику?
источник