www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Использование TF IDF для формирования описательных резюме глав посредством извлечения ключевых слов.

Дата публикации Nov 10, 2019

Источник:https://pixabay.com/photos/library-books-education-literature-869061/

TF IDF - это метод обработки на естественном языке, полезный для извлечения важных ключевых слов из набора документов или глав. Акроним расшифровывается как «термин частота-обратная частота документа »и описывает, как работает алгоритм.

Набор данных

В качестве нашего набора данных мы возьмем сценарий Франкенштейна Мэри Шелли (предоставленныйПроект Гутенберг) и генерировать представление о событиях в каждой главе на основе выходных данных алгоритма TFIDF. Для этого мы начнем с понимания того, почему алгоритм TFIDF настолько успешен в своих действиях:

Алгоритм TFIDF

Алгоритм работает в двух частях. Во-первых, мы рассчитываем наш ‘частота термин». Это ранжирует (взвешивает) каждое слово в соответствии с тем, сколько раз оно встречается в документе - чем больше мы повторяем что-либо, тем выше вероятность того, что оно важно.

Этот термин тогданормированныйпутем деления на количество слов во всей группе. Это связано с тем, что слова появляются в коротком сегменте, например заголовок, содержащий больше веса, чем то же самое слово среди тысяч строк.

Далее у нас есть ‘обратная частота документа' часть. Это важно, так как он ранжирует слова на основе их индивидуальности в этом конкретном сегменте текста. Здесь мы разделяем слова, которые часто используются водин разделтекста, из тех, которые используются многогде угодно, Это означает, что только идентифицирующие слова, локальные для текущего документа / раздела, помечены как важные. Мы рассчитываем это используя:

1 + log_exp ( number_documents / (document_frequency + 1))

Эти два термина в совокупности обеспечивают вес важности каждого слова по отношению к разделу, в котором оно находится.

Предварительная обработка

Как и во всех задачах по науке о данных, нам необходимо подготовить наши данные для использования в алгоритме. После прочтения необходимого текста в python мы можем заменить все точки пробелом и удалить все несловарные символы с помощью модуля regex:

text = text.replace('.',' ')
text = re.sub(r'\s+',' ',re.sub(r'[^\w \s]','',) ).lower()

Далее мы разбиваем наш набор данных на слово ‘глава»(+ номер)хотя это может быть\section{.*}в LaTeX или любом другом разделителе по вашему выбору.

corpus = re.split('chapter \d+',text)

Ввод данных в алгоритм

Самый простой способ сделать это - использоватьscikit учитьсяпакет в питоне. Здесь мы можем напрямую ввести наши данные и получить их для вычисления рейтинга слов для каждой группы:

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizervectorizer = TfidfVectorizer()
vectors = vectorizer.fit_transform(corpus)names = vectorizer.get_feature_names()
data = vectors.todense().tolist()# Create a dataframe with the results
df = pd.DataFrame(data, columns=names)

Фильтрация стоп-слов

В обработке естественного языка стоп-слова - это набор слов с очень небольшим значением для конечного результата. Это обычно общие слова, такие какI,a,all, any,and,the,them,it,dont,hasи т. д. Использование библиотеки естественной обработкиnltkзатем мы можем отфильтровать все столбцы, которые содержат их.

from nltk.corpus import stopwords
nltk.download('stopwords')
st = set(stopwords.words('english'))#remove all columns containing a stop word from the resultant dataframe. df = df[filter(lambda x: x not in list(st) , df.columns)]

Распечатайте первые N ранжированных слов для каждой главы

Это делается путем выбора каждой строки / набора данных - благодаря нашему более раннему выбору они представляют разные главы и выбирают N столбцов с наивысшим рейтингом перед их печатью.

N = 10;for i in df.iterrows():
print(i[1].sort_values(ascending=False)[:N])

Интерпретация результатов

Теперь мы видим, насколько хорошо работает наш алгоритм прогнозирования ключевых слов. Поскольку имеется 25 глав, ниже мы представляем только несколько случайно выбранных. В рамках этого выбора мы сравниваем синопсис главы с ключевыми словами с наивысшим рейтингом, выбранными алгоритмом TFIDF, и определяем, насколько хорошо он послужил для описания существующих событий.


Глава 1Франкенштейн устанавливает сцену и описывает, как его мать обнаружила Элизабет, осиротевшую в итальянской семье, и усыновила ее как свою собственную.

mother      0.084748
beaufort 0.079967
child 0.068566
father 0.062509
orphan 0.054138
daughter 0.053630
poverty 0.049939
italy 0.047980
infant 0.043612
abode 0.043612
Name: 1, dtype: float64

Глава 3Виктор (Франкенштейн) покидает Женеву, чтобы поступить в университет. Здесь Кремпе, профессор естественной философии, убеждает его, что его время изучения алхимии является пустой тратой. Как следствие, он посещает лекцию по химии, которую проводит профессор Вальдман, который затем убеждает его заниматься наукой.

science       0.074137
natural 0.071721
professor 0.065336
philosophy 0.059502
modern 0.054772
krempe 0.049489
waldman 0.049489
lecture 0.043557
chemistry 0.043557
principal 0.036860
Name: 3, dtype: float64

Глава 4Победители развивают большой энтузиазм к его работе в понимании науки о жизни. Настолько, что его увлечение созданием жизни становится его единственным занятием, большая часть которого приводит к тому, что он пренебрегает своими друзьями в жизни и проводит секретные эксперименты.

pursuit       0.053314
study 0.050588
life 0.046087
one 0.040652
corruption 0.039524
would 0.036956
science 0.036134
eagerness 0.035029
natural 0.034180
secret 0.034180
Name: 4, dtype: float64

Глава 14Монстр изучал язык и историю жителей небольшого коттеджа. Здесь Феликс недавно встретил Сафи. Мать Сафи, араб-христианин, была порабощена турками, прежде чем она вышла замуж за отца Сафи.

felix        0.164026
safie 0.136081
turk 0.112066
paris 0.087163
leghorn 0.084299
daughter 0.083509
deliverer 0.070249
lacey 0.045272
merchant 0.045272
christian 0.042149
Name: 14, dtype: float64

Глава 19Виктор и Генри путешествуют по Англии и Шотландии, но Виктор теряет терпение, чтобы начать свою работу и освободить себя от связи с монстром.

oxford        0.060545
city 0.058641
edinburgh 0.048436
lakes 0.042927
scotland 0.042927
might 0.038131
visited 0.037911
matlock 0.036327
cumberland 0.036327
clerval 0.034506
Name: 19, dtype: float64

Глава 23Элизабет убита монстром. Не сумев убедить магистрата в том, что это существо несет ответственность, Виктор клянется сделать так, чтобы своими жизнями он уничтожил свое творение.

magistrate    0.048762
room 0.047945
exert 0.039379
pistol 0.039379
arms 0.036325
punishment 0.034900
rushed 0.034054
might 0.033068
elizabeth 0.032818
wandered 0.032088
Name: 23, dtype: float64

Глава 24С потерей всей своей семьи Виктор выслеживает монстра на снегу и льду Севера. Здесь, на смертном одре, Виктор рассказывает свою историю и умоляет Уолтона продолжить преследование после его смерти

yet             0.051022
ice 0.048866
vengeance 0.037918
shall 0.033370
still 0.031682
die 0.030744
frankenstein 0.030744
would 0.027350
death 0.026679
feel 0.026679
Name: 24, dtype: float64

Выводы

Кажется, что, по крайней мере для этого романа Мэри Шелли,термин частота-обратная частота документаАлгоритм прост в использовании и служит надежным методом извлечения описательных ключевых слов для каждой главы. Так почему бы не попробовать это сами и посмотреть, что вы обнаружите?

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map