- •Мета робота
- •Короткі теоретичні відомості
- •1. Поняття функції та модуля.
- •1.1. Створення скриптів
- •2. Генерація випадкового тексту за допомогою біграмів
- •3. Лексичні ресурси nltk. Корпуси слів
- •3.1. Корпус words
- •3.2. Корпус стоп-слів
- •3.3. Корпус імен
- •4. Словники
- •4.1. Словник із позначенням вимови
- •Виконати самостійно
- •4.2. Порівняльні (компаративні) словники
- •5. WordNet – лексична база даних англійської мови
- •5.1. Значення і синоніми
- •5.2. Ієрархія в WordNet
- •5.3. Лексичні зв’язки в WordNet.
- •5.4. Оцінка подібності в WordNet
- •Додаток а
- •Порядок виконання роботи
- •Література
- •Інтернет посилання
- •Методичні вказівки
5.4. Оцінка подібності в WordNet
Синсети зв’язані між собою складною мережею лексичних зв’язків. Для певного синсету можна переглянути зв’язки у WordNet і знайти синсети, які з ним зв’язані за змістом. Інформація про семантичні взаємозв’язки між словами цінна при класифікації текстів.
Кожен синсет має один або більше шляхів за яким він зводиться до ключового поняття entity.n.01. Два синсети можуть мати спільне ключове поняття і ми нижче за ієрархією це ключове поняття тим ближчі між собою ці два синсети.
>>> right = wn.synset('right_whale.n.01')
>>> orca = wn.synset('orca.n.01')
>>> minke = wn.synset('minke_whale.n.01')
>>> tortoise = wn.synset('tortoise.n.01')
>>> novel = wn.synset('novel.n.01')
>>> right.lowest_common_hypernyms(minke)
[Synset('baleen_whale.n.01')]
>>> right.lowest_common_hypernyms(orca)
[Synset('whale.n.02')]
>>> right.lowest_common_hypernyms(tortoise)
[Synset('vertebrate.n.01')]
>>> right.lowest_common_hypernyms(novel)
[Synset('entity.n.01')]
Зрозуміло що whale це чітко визначене поняття, тоді як vertebrate є більш загальним а entity найбільш загальним. Можна оцінити «загальність» поняття визначивши глибину кожного синсета.
>>> wn.synset('baleen_whale.n.01').min_depth()
14
>>> wn.synset('whale.n.02').min_depth()
13
>>> wn.synset('vertebrate.n.01').min_depth()
8
>>> wn.synset('entity.n.01').min_depth()
0
Семантична подібність двох понять пов’язана з довжиною шляху між цими поняттями в WordNet . Пакет wordnet містить багато засобів для здійснення таких вимірювань (Leacock-Chodorow, Wu-Palmer, Resnik, Jiang-Conrath, Lin ). Наприклад path_similarity (присвоює значення від 0 до 1) базується на найкоротшому шляху, який поєднує поняття за ієрархією гіперонімів (-1 означає що шлях (спільний гіперонім) не знайдено).
>>> right.path_similarity(minke)
0.25
>>> right.path_similarity(orca)
0.16666666666666666
>>> right.path_similarity(tortoise)
0.076923076923076927
>>> right.path_similarity(novel)
0.043478260869565216
Додаток а
Сьогодні ми вивчили:
Поняття функції та модуля.
Основні лексичні ресурси NLTK та способи роботи з ними.
Робота з словником WordNet.
Порядок виконання роботи
1. Ознайомитися з теоретичними відомостями.
2. Виконати приклади, які використовуються в теоретичних відомостях.
3. Виконати наступні вправи:
Дослідити зв’язки голонім-меронім для іменників. Знайти іменники для демонстрації наступних зв’язків: member_meronyms(), part_meronyms(), substance_meronyms(), member_holonyms(), part_holonyms(), та substance_holonyms().
Використовуючи компаративний словник знайти для німецької, італійської та англійської мов близькі слова. Чи можуть отримані результати використовуватися для здійснення перекладу?
Побудувати умовний частотний розподіл для корпусу імен. Знайти які перші літери частіше використовуються в чоловічих та жіночих іменах.
Здійснити аналіз словника вимов. Знайти скільки різних слів він містить. Який відсоток слів з цього словника можуть мати різну вимову?
Який відсоток синсетів іменників не мають гіпонімів? До всіх синсетів можна доступитися за допомогою wn.all_synsets('n').
Визначити функцію supergloss(s) , яка буде приймати синсет s як аргумент і повертати стрічку в якій будуть поєднані всі описи всіх значень синсету s та описи всіх гіпернімів та гіпонімів s.
Модифікувати програму генерації випадкового тексту для виконання наступного: зберігати можливі наступні слова у списку та вибирати їх за допомогою random.choice() попередньо виконавши import random.
Модифікувати програму генерації випадкового тексту для виконання наступного: тренувати програму на текстах різних жанрів та різних корпусів. Генерацію тексту провести з 5-ма різними початковими словами. Результати проаналізувати та порівняти.
Модифікувати програму генерації випадкового тексту для виконання наступного: тренування програми на текстах двох різних жанрів та генерації тексту об’єднаного жанру.
Полісемія - це явище коли одне слово має декілька значень ( іменник dog має 7 значень, кількість яких визначити можна як len(wn.synsets('dog', 'n'))). Знайдіть середнє значення полісемії для іменників.
Полісемія - це явище коли одне слово має декілька значень ( іменник dog має 7 значень, кількість яких визначити можна як len(wn.synsets('dog', 'n'))). Знайдіть середнє значення полісемії для прикметників.
Полісемія - це явище коли одне слово має декілька значень ( іменник dog має 7 значень, кількість яких визначити можна як len(wn.synsets('dog', 'n'))). Знайдіть середнє значення полісемії для дієслів.
Полісемія - це явище коли одне слово має декілька значень ( іменник dog має 7 значень, кількість яких визначити можна як len(wn.synsets('dog', 'n'))). Знайдіть середнє значення полісемії для прислівників.
Використовуючи один з методів визначення подібності слів побудуйте відсортований по спаданню список значень подібності для наступних пар слів: car-automobile, gem-jewel, journey-voyage, boy-lad, coast-shore, asylum-madhouse, magician-wizard, midday-noon, furnace-stove, food-fruit, bird-cock.
Використовуючи один з методів визначення подібності слів побудуйте відсортований по спаданню список значень подібності для наступних пар слів: bird-crane, tool-implement, brother-monk, lad-brother, crane-implement, journey-car, monk-oracle, cemetery-woodland.
Використовуючи один з методів визначення подібності слів побудуйте відсортований по спаданню список значень подібності для наступних пар слів: monk-oracle, cemetery-woodland, food-rooster, coast-hill, forest-graveyard, shore-woodland, monk-slave, coast-forest, lad-wizard, chord-smile, glass-magician, rooster-voyage, noon-string.
Використовуючи один з методів визначення подібності слів побудуйте відсортований по спаданню список значень подібності для наступних пар слів: monk-oracle, cemetery-woodland, food-rooster, coast-hill, forest-graveyard, crane-implement, journey-car, coast-shore, asylum-madhouse, magician-wizard, midday-noon, furnace-stove, food-fruit, bird-cock.
4. Підготувати і оформити звіт.
Варіант |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Номери завдань |
1 |
2 |
1 |
2 |
1 |
2 |
1 |
2 |
1 |
2 |
1 |
1 |
2 |
1 |
2 |
3 |
5 |
5 |
3 |
3 |
5 |
5 |
3 |
3 |
5 |
5 |
3 |
5 |
5 |
3 |
|
4 |
6 |
4 |
6 |
6 |
4 |
4 |
4 |
6 |
4 |
6 |
6 |
4 |
4 |
4 |
|
7 |
8 |
9 |
9 |
7 |
8 |
7 |
8 |
9 |
9 |
7 |
8 |
|
|
|
|
10 |
11 |
12 |
13 |
10 |
11 |
12 |
13 |
10 |
11 |
12 |
10 |
11 |
12 |
13 |
|
14 |
15 |
16 |
17 |
14 |
15 |
16 |
17 |
14 |
15 |
16 |
14 |
15 |
16 |
17 |
|
|
|||||||||||||||
Варіант |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
Номери завдань |
1 |
2 |
1 |
2 |
2 |
1 |
2 |
1 |
2 |
1 |
2 |
1 |
2 |
1 |
2 |
3 |
5 |
5 |
3 |
5 |
5 |
3 |
3 |
5 |
5 |
3 |
3 |
5 |
5 |
3 |
|
4 |
6 |
4 |
6 |
6 |
4 |
4 |
6 |
6 |
4 |
6 |
6 |
4 |
4 |
6 |
|
7 |
8 |
9 |
9 |
7 |
8 |
7 |
8 |
9 |
9 |
7 |
8 |
8 |
7 |
9 |
|
10 |
11 |
12 |
13 |
11 |
12 |
13 |
10 |
11 |
12 |
13 |
10 |
11 |
12 |
13 |
|
14 |
15 |
16 |
17 |
15 |
16 |
17 |
14 |
15 |
16 |
17 |
14 |
15 |
16 |
17 |
|
|
|||||||||||||||
Зміст звіту
Титульний аркуш.
Мета роботи.
Короткі теоретичні відомості.
Тексти програм на мові Python.
Висновок.
