koziev ilya commited on
Commit
d9c4c17
1 Parent(s): d66a56e

README clarification and citation info

Browse files
Files changed (1) hide show
  1. README.md +35 -18
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
- Типичные паттерны: например, восстановление подлежащего (см. pro drop)
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
+ ```