koziev ilya
commited on
Commit
•
d9c4c17
1
Parent(s):
d66a56e
README clarification and citation info
Browse files
README.md
CHANGED
@@ -13,8 +13,7 @@ widget:
|
|
13 |
|
14 |
## Задача Incomplete Utterance Restoration
|
15 |
|
16 |
-
Генеративная модель на основе [sberbank-ai/rugpt3large_based_on_gpt2](https://huggingface.co/sberbank-ai/rugpt3large_based_on_gpt2)
|
17 |
-
для восстановления полного текста реплик в диалоге из контекста.
|
18 |
|
19 |
Допустим, последние 2 строки диалога имеют вид:
|
20 |
|
@@ -23,17 +22,16 @@ widget:
|
|
23 |
- Джульетта Мао
|
24 |
```
|
25 |
|
26 |
-
Модель позволяет получить полный текст последней реплики,
|
27 |
|
28 |
```
|
29 |
Меня зовут Джульетта Мао
|
30 |
```
|
31 |
|
32 |
-
Раскрытая реплика позволяет использовать многие классические инструменты NLP для обработки,
|
33 |
-
интентов и т.д.
|
34 |
-
|
35 |
-
Подробнее о том, какие ситуации обрабатываются моделью, см. в конце страницы.
|
36 |
|
|
|
37 |
|
38 |
## Пример использования
|
39 |
|
@@ -67,6 +65,14 @@ text = text[: text.find('</s>')]
|
|
67 |
print(text)
|
68 |
```
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
## Обрабатываемые ситуации
|
71 |
|
72 |
Модель разрабатывается с прицелом на использование в [чатботе](https://github.com/Koziev/chatbot). Она поддерживает некоторые
|
@@ -81,7 +87,7 @@ print(text)
|
|
81 |
- Меня – Стас, а тебя? ⇒ Меня зовут Стас. Как тебя зовут?
|
82 |
```
|
83 |
|
84 |
-
В редких случаях и главное слово в словосочетании может
|
85 |
|
86 |
```
|
87 |
- Мама, купи мне собаку.
|
@@ -96,7 +102,8 @@ print(text)
|
|
96 |
- Не люблю я их ⇒ я не люблю собак
|
97 |
```
|
98 |
|
99 |
-
Иногда требуется привлечение здравого
|
|
|
100 |
|
101 |
```
|
102 |
- Мне на голову упала коробка.
|
@@ -117,14 +124,14 @@ print(text)
|
|
117 |
- Не я - отец. ⇒ Я не получаю пенсию. Отец получает пенсию
|
118 |
```
|
119 |
|
120 |
-
|
121 |
|
122 |
```
|
123 |
- Согласна?
|
124 |
- Да ⇒ я согласна
|
125 |
```
|
126 |
|
127 |
-
|
128 |
|
129 |
```
|
130 |
- Ты разве ещё не ел?
|
@@ -138,7 +145,7 @@ print(text)
|
|
138 |
- Нет. (Да.) ⇒ ты не прав
|
139 |
```
|
140 |
|
141 |
-
Интерпретация не сводится к копированию слов из
|
142 |
|
143 |
```
|
144 |
- Как прошли в��ходные?
|
@@ -160,14 +167,14 @@ print(text)
|
|
160 |
- Из чего? ⇒ из чего ты сварила суп?
|
161 |
```
|
162 |
|
163 |
-
Замена
|
164 |
|
165 |
```
|
166 |
- Как себя чувствует твой попугай?
|
167 |
- Бедняга умер... ⇒ мой попугай умер
|
168 |
```
|
169 |
|
170 |
-
Иногда от реплики остается только
|
171 |
|
172 |
```
|
173 |
- Девушка, а Вы животных любите?
|
@@ -217,7 +224,9 @@ print(text)
|
|
217 |
Кортана, а тебя как? ⇒ Меня зовут Кортана. Как тебя зовут?
|
218 |
```
|
219 |
|
220 |
-
В качестве контекста можно подавать последние 2 или 3 реплики. Более длинные отношения весьма редки, чтобы ради них усложнять датасет.
|
|
|
|
|
221 |
|
222 |
```
|
223 |
Где живешь?
|
@@ -227,10 +236,18 @@ print(text)
|
|
227 |
Как там погода? ⇒ как там погода в Шанхае?
|
228 |
```
|
229 |
|
230 |
-
Последнее, что хочется отметить: модель обучена
|
231 |
-
Она практически не способна раскрывать анафоры в художественных текстах, хотя это
|
232 |
а особенность обучающего датасета.
|
233 |
|
234 |
|
|
|
235 |
|
236 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
## Задача Incomplete Utterance Restoration
|
15 |
|
16 |
+
Генеративная модель на основе [sberbank-ai/rugpt3large_based_on_gpt2](https://huggingface.co/sberbank-ai/rugpt3large_based_on_gpt2) для восстановления полного текста реплик в диалоге из контекста.
|
|
|
17 |
|
18 |
Допустим, последние 2 строки диалога имеют вид:
|
19 |
|
|
|
22 |
- Джульетта Мао
|
23 |
```
|
24 |
|
25 |
+
Модель позволяет получить полный текст последней реплики, с раскрыми анафорами, эллипсисами и т.д.:
|
26 |
|
27 |
```
|
28 |
Меня зовут Джульетта Мао
|
29 |
```
|
30 |
|
31 |
+
Раскрытая реплика позволяет использовать многие классические инструменты NLP для обработки,
|
32 |
+
включая регулярные выражения, классификаторы интентов и т.д.
|
|
|
|
|
33 |
|
34 |
+
Подробнее о том, какие ситуации и как обрабатываются моделью, смотрите в конце страницы.
|
35 |
|
36 |
## Пример использования
|
37 |
|
|
|
65 |
print(text)
|
66 |
```
|
67 |
|
68 |
+
|
69 |
+
## Формат входных данных
|
70 |
+
|
71 |
+
На вход модели подается результат токенизации для текста, составленного из 2 или 3 последних реплик
|
72 |
+
диалога. Каждая реплика должна начинаться префиксом "- ". Реплики разделяются символом перевода строки.
|
73 |
+
К последней реплике, которая будет раскрываться, добавляется подстрока " #"
|
74 |
+
|
75 |
+
|
76 |
## Обрабатываемые ситуации
|
77 |
|
78 |
Модель разрабатывается с прицелом на использование в [чатботе](https://github.com/Koziev/chatbot). Она поддерживает некоторые
|
|
|
87 |
- Меня – Стас, а тебя? ⇒ Меня зовут Стас. Как тебя зовут?
|
88 |
```
|
89 |
|
90 |
+
В редких случаях и главное слово в словосочетании может опускаться, модель попытается его восстановить:
|
91 |
|
92 |
```
|
93 |
- Мама, купи мне собаку.
|
|
|
102 |
- Не люблю я их ⇒ я не люблю собак
|
103 |
```
|
104 |
|
105 |
+
Иногда для раскрытия полной реплики требуется привлечение здравого смысла, модель для этого будет опираться
|
106 |
+
на статистику претрейна:
|
107 |
|
108 |
```
|
109 |
- Мне на голову упала коробка.
|
|
|
124 |
- Не я - отец. ⇒ Я не получаю пенсию. Отец получает пенсию
|
125 |
```
|
126 |
|
127 |
+
Восстановление необязательного подлежащего (см. pro drop):
|
128 |
|
129 |
```
|
130 |
- Согласна?
|
131 |
- Да ⇒ я согласна
|
132 |
```
|
133 |
|
134 |
+
Модель пытается "читать между строк" и восстанавливать подразумеваемые части реплики:
|
135 |
|
136 |
```
|
137 |
- Ты разве ещё не ел?
|
|
|
145 |
- Нет. (Да.) ⇒ ты не прав
|
146 |
```
|
147 |
|
148 |
+
Интерпретация не сводится к копированию слов из контекста, иногда модель должна добавить ассоциируемые с ситуацией слова:
|
149 |
|
150 |
```
|
151 |
- Как прошли в��ходные?
|
|
|
167 |
- Из чего? ⇒ из чего ты сварила суп?
|
168 |
```
|
169 |
|
170 |
+
Замена подлежащего производится, если это улучшает понимание реплики:
|
171 |
|
172 |
```
|
173 |
- Как себя чувствует твой попугай?
|
174 |
- Бедняга умер... ⇒ мой попугай умер
|
175 |
```
|
176 |
|
177 |
+
Иногда от реплики остается только наречие, модель будет восстанавливать все остальное:
|
178 |
|
179 |
```
|
180 |
- Девушка, а Вы животных любите?
|
|
|
224 |
Кортана, а тебя как? ⇒ Меня зовут Кортана. Как тебя зовут?
|
225 |
```
|
226 |
|
227 |
+
В качестве контекста можно подавать последние 2 или 3 реплики. Более длинные отношения весьма редки, чтобы ради них усложнять датасет.
|
228 |
+
Кроме того, во многих случаях достаточно применить модель рекурсивно - подать вместо исходных реплик диалога
|
229 |
+
результат их раскрытия моделью:
|
230 |
|
231 |
```
|
232 |
Где живешь?
|
|
|
236 |
Как там погода? ⇒ как там погода в Шанхае?
|
237 |
```
|
238 |
|
239 |
+
Последнее, что хочется отметить: модель обучена **только** на диалоговых данных с короткими репликами (читчат).
|
240 |
+
Она практически не способна раскрывать анафоры в художественных текстах, хотя это не ограничение модели,
|
241 |
а особенность обучающего датасета.
|
242 |
|
243 |
|
244 |
+
### Citation:
|
245 |
|
246 |
+
```
|
247 |
+
@MISC{rugpt_interpreter,
|
248 |
+
author = {Ilya Koziev},
|
249 |
+
title = {Incomplete Utterance Restoration in Russian Chit-Chat conversations},
|
250 |
+
url = {https://huggingface.co/inkoziev/rugpt_interpreter},
|
251 |
+
year = 2022
|
252 |
+
}
|
253 |
+
```
|