You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/sr/6-NLP/3-Translation-Sentiment/README.md

23 KiB

Превод и анализа сентимента уз помоћ машинског учења

У претходним лекцијама научили сте како да направите основног бота користећи TextBlob, библиотеку која користи машинско учење у позадини за обављање основних NLP задатака као што је издвајање именица. Један од важних изазова у рачунарској лингвистици је тачна превод реченице са једног говорног или писаног језика на други.

Квиз пре предавања

Превод је веома тежак проблем, додатно компликован чињеницом да постоје хиљаде језика, а сваки од њих може имати веома различита граматичка правила. Један приступ је конвертовање формалних граматичких правила једног језика, као што је енглески, у структуру која није зависна од језика, а затим превођење тако што се та структура враћа у други језик. Овај приступ подразумева следеће кораке:

  1. Идентификација. Идентификујте или означите речи у улазном језику као именице, глаголе итд.
  2. Креирање превода. Направите директан превод сваке речи у формату циљног језика.

Пример реченице, енглески у ирски

На енглеском, реченица I feel happy има три речи у следећем редоследу:

  • субјекат (I)
  • глагол (feel)
  • придев (happy)

Међутим, на ирском језику, иста реченица има веома другачију граматичку структуру - емоције као што су "срећан" или "тужан" изражавају се као да су на теби.

Енглеска фраза I feel happy на ирском би била Tá athas orm. Буквалан превод би био Срећа је на мени.

Говорник ирског језика који преводи на енглески рекао би I feel happy, а не Happy is upon me, јер разуме значење реченице, чак и ако су речи и структура реченице различите.

Формални редослед за реченицу на ирском је:

  • глагол (Tá или је)
  • придев (athas, или срећан)
  • субјекат (orm, или на мени)

Превод

Наивни програм за превођење могао би да преводи само речи, игноришући структуру реченице.

Ако сте научили други (или трећи или више) језик као одрасла особа, можда сте почели тако што сте размишљали на свом матерњем језику, преводећи концепт реч по реч у својој глави на други језик, а затим изговарали свој превод. Ово је слично ономе што раде наивни компјутерски програми за превођење. Важно је превазићи ову фазу да бисте постигли течност!

Наивно превођење доводи до лоших (а понекад и смешних) погрешних превода: I feel happy буквално се преводи као Mise bhraitheann athas на ирском. То значи (буквално) ја осећам срећу и није валидна ирска реченица. Иако су енглески и ирски језици који се говоре на два суседна острва, они су веома различити језици са различитим граматичким структурама.

Можете погледати неке видео снимке о ирским лингвистичким традицијама као што је овај

Приступи машинског учења

До сада сте научили о приступу формалних правила у обради природног језика. Други приступ је игнорисање значења речи и уместо тога коришћење машинског учења за откривање образаца. Ово може функционисати у превођењу ако имате много текста (корпус) или текстова (корпора) на оба језика - изворном и циљном.

На пример, узмите у обзир случај Гордости и предрасуда, познатог енглеског романа који је написала Џејн Остин 1813. године. Ако консултујете књигу на енглеском и људски превод књиге на француски, могли бисте открити фразе у једном које су идиоматски преведене у други. Ускоро ћете то урадити.

На пример, када се енглеска фраза I have no money буквално преведе на француски, могла би постати Je n'ai pas de monnaie. "Monnaie" је незгодан француски 'лажни сродник', јер 'money' и 'monnaie' нису синоними. Бољи превод који би човек могао направити био би Je n'ai pas d'argent, јер боље преноси значење да немате новца (уместо 'ситниша', што је значење 'monnaie').

monnaie

Слика од Jen Looper

Ако ML модел има довољно људских превода за изградњу модела, може побољшати тачност превода идентификовањем уобичајених образаца у текстовима који су претходно преведени од стране стручних говорника оба језика.

Вежба - превођење

Можете користити TextBlob за превођење реченица. Пробајте чувену прву реченицу из Гордости и предрасуда:

from textblob import TextBlob

blob = TextBlob(
    "It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife!"
)
print(blob.translate(to="fr"))

TextBlob ради прилично добар превод: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".

Може се тврдити да је превод TextBlob-а далеко прецизнији, у ствари, од француског превода књиге из 1932. године од стране В. Леконта и Ш. Пресоара:

"C'est une vérité universelle qu'un célibataire pourvu d'une belle fortune doit avoir envie de se marier, et, si peu que l'on sache de son sentiment à cet egard, lorsqu'il arrive dans une nouvelle résidence, cette idée est si bien fixée dans l'esprit de ses voisins qu'ils le considèrent sur-le-champ comme la propriété légitime de l'une ou l'autre de leurs filles."

У овом случају, превод заснован на ML ради бољи посао од људског преводиоца који непотребно додаје речи у уста оригиналног аутора ради 'јасноће'.

Шта се овде дешава? И зашто је TextBlob тако добар у превођењу? Па, у позадини, користи Google Translate, софистицирани AI способан да анализира милионе фраза како би предвидео најбоље низове за задатак. Овде нема ничег ручног и потребна вам је интернет конекција да бисте користили blob.translate.

Пробајте још неке реченице. Шта је боље, ML или људски превод? У којим случајевима?

Анализа сентимента

Још једна област у којој машинско учење може веома добро функционисати је анализа сентимента. Приступ без ML-а за сентимент је идентификовање речи и фраза које су 'позитивне' и 'негативне'. Затим, узимајући нови текст, израчунајте укупну вредност позитивних, негативних и неутралних речи како бисте идентификовали укупни сентимент.

Овај приступ се лако може преварити, као што сте можда видели у задатку са Марвином - реченица Great, that was a wonderful waste of time, I'm glad we are lost on this dark road је саркастична, негативна сентимент реченица, али једноставан алгоритам детектује 'great', 'wonderful', 'glad' као позитивне и 'waste', 'lost' и 'dark' као негативне. Укупни сентимент је под утицајем ових конфликтних речи.

Застаните на тренутак и размислите о томе како као људски говорници преносимо сарказам. Интонација игра велику улогу. Покушајте да кажете фразу "Well, that film was awesome" на различите начине да откријете како ваш глас преноси значење.

Приступи машинског учења

Приступ машинског учења би био ручно сакупљање негативних и позитивних текстова - твитова, или рецензија филмова, или било чега где је човек дао оцену и писано мишљење. Затим се NLP технике могу применити на мишљења и оцене, тако да се појаве обрасци (нпр., позитивне рецензије филмова имају фразу 'Oscar worthy' више него негативне рецензије филмова, или позитивне рецензије ресторана кажу 'gourmet' много више него 'disgusting').

⚖️ Пример: Ако радите у канцеларији политичара и постоји неки нови закон о коме се расправља, грађани би могли писати канцеларији са имејловима који подржавају или се противе одређеном новом закону. Рецимо да вам је задатак да читате имејлове и сортирате их у 2 гомиле, за и против. Ако има много имејлова, могли бисте бити преоптерећени покушавајући да их све прочитате. Зар не би било лепо да бот може да их све прочита уместо вас, разуме их и каже вам у коју гомилу сваки имејл припада?

Један начин да се то постигне је коришћење машинског учења. Тренирали бисте модел са делом имејлова против и делом имејлова за. Модел би имао тенденцију да повезује фразе и речи са страном против и страном за, али не би разумео ниједан садржај, само да се одређене речи и обрасци чешће појављују у имејлу против или за. Могли бисте га тестирати са неким имејловима које нисте користили за тренирање модела и видети да ли долази до истог закључка као и ви. Затим, када будете задовољни тачношћу модела, могли бисте обрађивати будуће имејлове без потребе да читате сваки.

Да ли вам овај процес звучи као процеси које сте користили у претходним лекцијама?

Вежба - сентименталне реченице

Сентимент се мери са поларитетом од -1 до 1, што значи да је -1 најнегативнији сентимент, а 1 најпозитивнији. Сентимент се такође мери са оценом од 0 до 1 за објективност (0) и субјективност (1).

Поново погледајте Гордост и предрасуде Џејн Остин. Текст је доступан овде на Project Gutenberg. Узорак испод показује кратак програм који анализира сентимент прве и последње реченице из књиге и приказује њен поларитет сентимента и оцену субјективности/објективности.

Требало би да користите библиотеку TextBlob (описану горе) за одређивање sentiment (не морате сами писати калкулатор сентимента) у следећем задатку.

from textblob import TextBlob

quote1 = """It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife."""

quote2 = """Darcy, as well as Elizabeth, really loved them; and they were both ever sensible of the warmest gratitude towards the persons who, by bringing her into Derbyshire, had been the means of uniting them."""

sentiment1 = TextBlob(quote1).sentiment
sentiment2 = TextBlob(quote2).sentiment

print(quote1 + " has a sentiment of " + str(sentiment1))
print(quote2 + " has a sentiment of " + str(sentiment2))

Видите следећи излаз:

It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want # of a wife. has a sentiment of Sentiment(polarity=0.20952380952380953, subjectivity=0.27142857142857146)

Darcy, as well as Elizabeth, really loved them; and they were
     both ever sensible of the warmest gratitude towards the persons
      who, by bringing her into Derbyshire, had been the means of
      uniting them. has a sentiment of Sentiment(polarity=0.7, subjectivity=0.8)

Изазов - проверите поларитет сентимента

Ваш задатак је да одредите, користећи поларитет сентимента, да ли Гордост и предрасуде има више апсолутно позитивних реченица него апсолутно негативних. За овај задатак, можете претпоставити да је поларитетна оцена од 1 или -1 апсолутно позитивна или негативна, респективно.

Кораци:

  1. Преузмите копију Гордости и предрасуда са Project Gutenberg као .txt датотеку. Уклоните метаподатке на почетку и крају датотеке, остављајући само оригинални текст
  2. Отворите датотеку у Python-у и извучите садржај као стринг
  3. Направите TextBlob користећи стринг књиге
  4. Анализирајте сваку реченицу у књизи у петљи
    1. Ако је поларитет 1 или -1, сачувајте реченицу у низу или листи позитивних или негативних порука
  5. На крају, одштампајте све позитивне реченице и негативне реченице (одвојено) и број сваке.

Ево узорка решења.

Провера знања

  1. Сентимент се заснива на речима које се користе у реченици, али да ли код разуме речи?
  2. Да ли мислите да је поларитет сентимента тачан, или другим речима, да ли се слажете са оценама?
    1. Посебно, да ли се слажете или не слажете са апсолутно позитивним поларитетом следећих реченица?
      • “Каквог одличног оца имате, девојке!” рекла је она, када су врата била затворена.
      • “Ваше испитивање господина Дарсија је завршено, претпостављам,” рекла је госпођица Бингли; “и молим вас, какав је резултат?” “Савршено сам убеђена да господин Дарси нема ниједан недостатак.
      • Како се дивно дешавају овакве ствари!
      • Имам највећу одбојност на свету према таквим стварима.
      • Шарлот је одличан менаџер, усуђујем се рећи.
      • “Ово је заиста дивно!
      • Тако сам срећна!
      • Ваша идеја о понијима је дивна.
    2. Следеће 3 реченице су оцењене са апсолутно позитивним сентиментом, али при ближем читању, оне нису позитивне реченице. Зашто је анализа сентимента мислила да су позитивне реченице?
      • Срећна ћу бити када његов боравак у Нетерфилду буде завршен!” “Волела бих да могу рећи било шта да вас утешим,” одговорила је Елизабет; “али то је потпуно ван моје моћи.
      • Када бих само могла да вас видим срећним!
      • Наша невоља, драга Лизи, је веома велика.
    3. Да ли се слажете или не слажете са апсолутно негативним поларитетом следећих реченица?
      • Сви су згрозени његовом гордошћу.
      • “Волео бих да знам како се понаша међу странцима.” “Чућете онда—али припремите се за нешто веома страшно.
      • Паузу је Елизабет осетила као страшну.
      • Било би страшно!

Сваки љубитељ Џејн Остин ће разумети да она често користи своје књиге да критикује смешније аспекте енглеског регентског друштва. Елизабет Бенет, главни лик у Гордости и предрасудама, је оштроумни посматрач друштва (као и ауторка) и њен језик је често веома нијансиран. Чак и господин Дарси (љубавни интерес у причи) примећује Елизабетино раз Постоји много начина за извлачење сентимента из текста. Размислите о пословним апликацијама које би могле користити ову технику. Размислите о томе како она може да крене наопако. Прочитајте више о софистицираним системима спремним за предузећа који анализирају сентимент, као што је Azure Text Analysis. Тестирајте неке од реченица из „Гордости и предрасуда“ изнад и видите да ли може да открије нијансе.

Задатак

Песничка слобода


Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.