Блог
Извлечение ключевых слов:
Извлечение ключевых слов — это процесс выявления и извлечения наиболее релевантных и важных слов или фраз из заданного текста. Эти ключевые слова могут дать ценную информацию об основных темах и темах, обсуждаемых в тексте. Вот несколько методов, обычно используемых для извлечения ключевых слов:
- Частотные методы. Один из самых простых подходов — извлечение ключевых слов на основе частоты их появления в тексте. Чем чаще встречается слово, тем больше вероятность, что оно будет считаться ключевым словом. Этот метод можно реализовать с использованием основных методов манипуляции со строками и методов подсчета.
def extract_keywords_frequency(text):
word_counts = {}
for word in text.split():
if word not in word_counts:
word_counts[word] = 1
else:
word_counts[word] += 1
keywords = sorted(word_counts, key=word_counts.get, reverse=True)[:5]
return keywords
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dapibus lorem eget odio."
keywords = extract_keywords_frequency(text)
print(keywords) # Output: ['Lorem', 'ipsum', 'dolor', 'sit', 'amet']
- TF-IDF (частота термина, обратная частоте документа): TF-IDF — это широко используемый метод, который учитывает как частоту слова в документе, так и его редкость во всех документах. Этот метод помогает определить слова, которые важны в конкретном документе, но относительно редки в общем корпусе.
from sklearn.feature_extraction.text import TfidfVectorizer
def extract_keywords_tfidf(text):
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform([text])
feature_names = vectorizer.get_feature_names_out()
keywords = [feature_names[i] for i in tfidf_matrix.indices[:5]]
return keywords
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dapibus lorem eget odio."
keywords = extract_keywords_tfidf(text)
print(keywords) # Output: ['lorem', 'ipsum', 'dolor', 'sit', 'amet']
Извлечение информации:
Извлечение информации, с другой стороны, направлено на выявление и извлечение структурированной информации из неструктурированного текста. Сюда могут входить сущности, отношения, события и другая соответствующая информация. Вот несколько методов, обычно используемых для извлечения информации:
- Распознавание именованных объектов (NER): NER — это метод, который фокусируется на идентификации и классификации именованных объектов, таких как имена, местоположения, организации и даты в тексте. Этот метод использует модели машинного обучения или подходы, основанные на правилах, для распознавания и извлечения этих объектов.
import spacy
def extract_named_entities(text):
nlp = spacy.load('en_core_web_sm')
doc = nlp(text)
entities = [ent.text for ent in doc.ents]
return entities
text = "Apple Inc. was founded by Steve Jobs and Steve Wozniak on April 1, 1976, in Cupertino, California."
entities = extract_named_entities(text)
print(entities) # Output: ['Apple Inc.', 'Steve Jobs', 'Steve Wozniak', 'April 1, 1976', 'Cupertino', 'California']
- Разбор зависимостей. Анализ зависимостей анализирует грамматическую структуру предложения для выявления связей между словами. Его можно использовать для извлечения такой информации, как отношения субъект-глагол-объект, модификаторы и зависимости между сущностями.
import spacy
def extract_dependencies(text):
nlp = spacy.load('en_core_web_sm')
doc = nlp(text)
dependencies = [(token.text, token.dep_, token.head.text) for token in doc]
return dependencies
text = "I ate a delicious pizza for dinner."
dependencies = extract_dependencies(text)
print(dependencies)
# Output: [('I', 'nsubj', 'ate'), ('ate', 'ROOT', 'ate'), ('a', 'det', 'pizza'), ('delicious', 'amod', 'pizza'), ('pizza', 'dobj', 'ate'), ('for', 'prep', 'ate'), ('dinner', 'pobj', 'for')]