NLP (обработка на естествен език)

Тази работа е ръководство за текстообработка на френски език,

обработка

Тази статия ще ви запознае с основния речник и предложения работен процес за изграждане на NLP приложения, за да ви помогне да започнете с най-често срещаните задачи като анализ на настроенията, разпознаване на обекти, вграждане на думи и превод. Автоматичен ... и т.н.

Състои се от общо 4 статии

Класификация на NLP (Обработка на естествен език) - машинно обучение 2

В предишната статия,

medium.com

NLP (Обработка на естествен език) Работен процес на класификация на текста (вземете n-грама като вход)

__ЧАСТ__ 3

medium.com

Съвременният текстов анализ вече е много достъпен с помощта на Python и инструменти с отворен код, които ви позволяват да научите как да анализирате текстовите си данни. Тази статия обяснява понятията за обработка на естествен език (NLP) и анализ на текст. Ще разгледаме накратко различните етапи на предварителната обработка.

Текстови данни, чиито формати са предимно неструктурирани. Неструктурираните данни не могат да бъдат представени в таблична форма. Следователно е от съществено значение да го преобразувате в числова функционалност, тъй като повечето алгоритми за машинно обучение могат да обработват само числа. По-голям акцент ще бъде поставен върху стъпки като токенизация, стеминг, лематизация и спиране на премахването на думи. Също така ще научите два популярни метода за извличане на функции: торбата с думи и TFIDF, както и различни методи за създаване на нови функции от съществуващи функции.

Преди да започнем тази статия, ще инсталираме scikit-learn и другите (просторни) библиотеки, използвани в тази статия. Стъпките за инсталирането им ще намерите тук:

  • pip install -U spacy
  • pip инсталирайте scikit-learn

През повечето време текстовите данни не могат да се използват такива, каквито са. Това е така, защото наличието на различни неизвестни символи или връзки го прави неподходящ за използване. Почистването на данни е изкуството на извличането на значими части от данни чрез премахване на ненужни детайли. Различни символи, като „_/\ _” и „:),”. Тези символи например не допринасят много за неговото значение. Трябва да премахнем тези нежелани подробности. Това се прави не само за да се съсредоточи повече върху действителното съдържание, но и за намаляване на изчисленията. За да се постигне това, се използват методи като токенизация и стеминг. .Ще обсъдим подробно различни задачи за предварителна обработка и ще ги демонстрираме с примери.

При дадено изречение разбиването му на знаци или думи се нарича токенизация. Има библиотеки, като spaCy, които предлагат сложни решения за токенизация.

Токенизация на текст в изречения.

[Това е 1 първо изречение. ’,„ Тогава пиша второ. “, Накрая е трето, без да се пишат главни букви“]

Токенизация на текст в лексеми.

['Това', 'е', '1', 'първо', 'изречение', '.', 'След това', 'j' ',' в ',' напиши ',' едно ',' второ ', „.“, „за“, „завърши“, „в“, „тук“, „а“, „трети“, „без“, „постави“, „от“, „главни букви“]

Преобразуване на текст в символи

Функцията за списък в Python взема низ и го преобразува в списък с отделни символи. Това превръща текста в символи. Следващият кодов блок показва използвания код.

Обработка на големи обеми текст

Ако трябва да обработите голям брой текстове и да създадете няколко Doc обекта подред, методът nlp.pipe може значително да ускори тази операция. Той третира текстовете като поток и генерира Doc обекти. Това е много по-бързо от извикването на nlp за всеки текст.

[['Това', 'е', '1', 'първо', 'изречение', '.'], ['След това', 'j' ',' en ',' напиши ',' a ',' второ ','. '], [„за“, „завърши“, „в“, „voila“, „едно“, „трето“, „без“, „пут“, „от“, „главни букви“]]

Думите за спиране са често срещани думи, които просто се използват за улесняване на изграждането на изречения. Тъй като те се случват много често и тяхното присъствие не оказва особено влияние върху значението на изречението, те трябва да бъдат заличени. „Спиращите думи“ се установяват като списъци с думи. Тези списъци обикновено се предлагат в книжарница, наречена spacy, и на много различни езици.

Няма универсален списък със спирки с думи за всеки език, голяма част от него зависи от случая на употреба и вида на резултатите, които очаквате. Като цяло това е списък с най-често срещаните думи в езика. С spaCy стоп думите са много лесни за идентифициране, всеки маркер има атрибут IS_STOP, който ни дава информация дали думата е празна дума или не. Също така можем да добавим собствени стоп думи към списъка със стоп думи.

По този начин получаваме достъп до списъците на френски език.

Брой стоп думи: 600
Първите десет думи за спиране: [петдесета ’,‘ тестове ’, наслагване’, рендери ’, разни’, ‘n’ ’,‘ със сигурност ’,‘ сега ’,‘ след ’, les’]

Изтриване на стоп думи

Оригинален текст: [Това е 1 първо изречение. ', „Тогава пиша второ.“, „Накрая ето трето, без главни букви“]
текст без стоп думи: [[1, изречение,], [запис, втора,.], [завършек, поставяне, главна буква]]

Добавете персонализирани стоп думи

Оригинален текст: [„Това е 1 първо изречение.“, „Тогава пиша второ.“, „Най-накрая има трето, без да се пишат главни букви“]
текст без стоп думи: [[‘изречение’], [запис ’,‘ второ ’], [завършване’, поставяне ’, главни букви’]]

Някои думи се пишат, произнасят и представят по различен начин, например Мумбай и Бомбай, както и САЩ и САЩ. Въпреки че са различни, те означават едно и също нещо. Съществуват и различни форми на думи, които трябва да бъдат преобразувани в основни форми. Например думи като „готово“ и „fesait“, когато се преобразуват в основната си форма, стават „направи“. По този начин нормализирането на текста е процес, при който различни варианти на текст се преобразуват в стандартна форма. Трябва да направим нормализиране на текста, защото някои думи могат да означават едно и също нещо. Има различни начини за нормализиране на текста, като например проверка на правописа, извличане и лематизиране. За по-добро разбиране на тази тема ще разгледаме практическото изпълнение.

[['this', 'is', '1', 'first', 'изречение', '.'], ['then', “j '”,' en ',' write ',' a ',' второ ','. '], [„за“, „завърши“, „в“, „voila“, „едно“, „трето“, „без“, „пут“, „от“, „главни букви“]]

Искаме да заменим „САЩ“ със „САЩ“ и „18“ с „2018“. За целта използваме функцията за заместване

Ако трябва да съпоставите големи списъци с терминология, можете също да използвате PhraseMatcher обекти spacy за трансформиране на често срещани изрази от много думи в прости елементи