Skip to content

Sstoryteller2/dialog_check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

dialog_check

script for searching NER in dialogs (russion). Spacy Π‘ΠΊΡ€ΠΈΠΏΡ‚ для парсинга Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²

Запуск:

ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, запускаСтС

pip install -r requirements.txt

(установятся numpy, pandas, spacy ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ru_core_news_lg ~500mb)

Π’ ΠΏΠ°ΠΏΠΊΡƒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» test_data.csv (Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ с Ρ‚Π°ΠΊΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, ΠΈΠ»ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π² main.py), запускаСтС

./main.py

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния скрипта сохраняСтся Π² Ρ„Π°ΠΉΠ» res_data.csv

Как всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

Под ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ написана функция, которая ΠΈΡ‰Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ сущности.
ΠžΠ±Ρ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚Π°ΠΊΠΎΠΉ:

  1. ВыдСляСм id Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², Π½Π° основС Π½ΠΈΡ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅
  2. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π°Π·Ρ‹ manager
  3. Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с трСмя (ΠΌΠΎΠΆΠ½ΠΎ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Ρ„Π°Ρ€Π°Π·Π°ΠΌΠΈ для выдСлСния привСтствия ΠΈ прСдставлСния ΠΈ трСмя послСдними для прощания.
  4. Всё ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ сохраняСм.

Бостав ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

  1. function.py - всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ
  2. synonyps.py - списки синонимов
  3. main.py - ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» скрипта
  4. Папка numpy_edition - Ρ‚ΠΎΠΆΠ΅ самоС, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π±Π΅Π· использования pandas, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ numpy (получаСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ быстрСС)

БобствСнно Π·Π°Π΄Π°Π½ΠΈΠ΅:

Π°) Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ с привСтствиСм

Ѐункция is_greet_in_phrase.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π»Π΅ΠΌΠΌΡ‹ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π²ΠΎ Ρ„Ρ€Π°Π·Π΅ Π½Π° соотвСтвиС Π² спискС синонимов ('Π·Π΄Ρ€Π°Π²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ', 'Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ', 'ΠΏΡ€ΠΈΠ²Π΅Ρ‚', 'ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ'), Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… привСтствий.

b-c) Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ, Π³Π΄Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ прСдставил сСбя

функция is_introduce_in_phrase

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ сущиности Person, смотрим ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ nsubj ΠΊ Π³Π»Π°Π²Π½ΠΎΠΌΡƒ слову ΠΈΠ· списка для Ρ„Ρ€Π°Π· "мСня Π·ΠΎΠ²ΡƒΡ‚", "ΠΌΠΎΡ‘ имя", "с Π²Π°ΠΌΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚", Π½Π° всякий случай провСряСм ΠΏΠΎ Π»Π΅ΠΌΠΌΠ°ΠΌ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· зависимости, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ упомининания ΠΈΠΌΡ‘Π½ (Π² датасСтС Π² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ„Ρ€Π°Π·Π°Ρ… Π΅ΡΡ‚ΡŒ обращСния ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ).

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ сдСлал ΡƒΡ‡Ρ‘Ρ‚ конструкции Ρ‚ΠΈΠΏΠ° "Π­Ρ‚ΠΎ Ольга", ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ привСтствия ΠΈ слов ΠΈΠ· синонимчСского ряда.

d) Π˜Π·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ

Бамая слоТная Ρ‡Π°ΡΡ‚ΡŒ, функция get_company_name.

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ spacy, ntlk ΠΈ natasha я Π½Π΅ смог ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ Π² NER названия ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ spacy Π½Π° рССстрС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, Π½ΠΎ быстро Π½Π°ΠΉΡ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ сСт Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΠΏΠΎΡˆΡ‘Π» Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ.

Π§Π΅ΠΌ Π»ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ нСйросСти NER, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ извСстно (ΠΊΠ»ΠΈΠ΅Π½Ρ‚). Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ· Π½ΠΈΡ… список всСх ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΈ провСряСм ΠΏΠΎ списку. Учитывая Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ speech-to-text, Π΄ΠΎΠ±Π°Π²ΠΈΠ» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎ максимальной схоТСсти (Ссли Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π½ΠΎΠ±ΠΎΠΉ Π² написаниях). Π‘Π°ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ называния ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ловится ΠΏΠΎ слову компания.

e) Π˜Π·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ с ΠΏΡ€ΠΎΡ‰Π°Π½ΠΈΠ΅ΠΌ

функция is_bye

ΠŸΡ€ΠΎΡΡ‚ΠΎ провСряСм Π½Π° список ΠΏΡ€ΠΎΡ‰Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π·. Π­Ρ‚Ρƒ Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΈΠ»ΠΈΡ‚ΡŒ Π»ΠΈΠ±ΠΎ синтаксичСскими контрукциями, Π»ΠΈΠ±ΠΎ Π½Π°Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π±ΠΎΠ»Π΅Π΅ большом ΠΎΠ±ΡŠΡ‘ΠΌΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….
БинтакисчСская контрукция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„Ρ€Π°Π· Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡΡ Π² сСбя слово "Π΄ΠΎ" (Π”ΠΎ Π·Π°Π²Ρ‚Ρ€Π°, Π΄ΠΎ встрСчи).

f) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ итоговая Ρ‚Π°Π±Π»ΠΈΡ†Π°

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΠ°Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ столбца "insight", Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ случаи, ΠΊΠΎΠ³Π΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅Ρ‚ прСдставлСния ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΄Π΅Ρ€ Π½Π΅ поздаровался: Π² ΠΊΠ°ΠΊΠΎΠΉ столбСц Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚? Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ слоТности, ΠΊΠΎΠ³Π΄Π° нСсколько условий Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ„Ρ€Π°Π·Π΅. Π’ΠΎΠΆΠ΅ самоС ΠΈ с ΠΏΡ€ΠΎΡ‰Π°Π½ΠΈΠ΅ΠΌ.

Π― записал всС условия связанныС с прСдставлСниСм, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ„Ρ€Π°Π·Ρƒ Π΄ΠΈΠ°Π»ΠΎΠ³Π°, ΠΈ дальшС Π²ΠΎ всС Ρ„Ρ€Π°Π·Ρ‹, Π³Π΄Π΅ условия Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° прощания, записана Π² послСднюю Ρ„Ρ€Π°Π·Ρƒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°.

  • greeting=True/False - привСтствиС
  • introduction=True/False - прСдставлСниС
  • company=True/False - Π½Π°Π·Π²Π°Π½Π° компания
  • bying=True/False - ΠΏΡ€ΠΎΡ‰Π°Π½ΠΈΠ΅

На всякий случай сдСлал Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΏΠΎ названию ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² задания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹)

  • a. Π˜Π·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ с привСтствиСм – Π³Π΄Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ поздоровался. True/False
  • b. Π˜Π·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ, Π³Π΄Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ прСдставил сСбя. True/False
  • c. Π˜Π·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ имя ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°. Имя ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°
  • d. Π˜Π·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. НазваниС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
  • e. Π˜Π·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ, Π³Π΄Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ попрощался. True/False
  • f. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρƒ: Β«Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ·Π΄ΠΎΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΡ‰Π°Ρ‚ΡŒΡΡ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌΒ». True/False

About

script for search NER in dialogs (russion). Spacy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages