-
Метод 1: обработка естественного языка (NLP)
- Пример кода:
import nltk from nltk.corpus import stopwords from nltk.tokenize import word_tokenize def extract_keywords(text): stop_words = set(stopwords.words('english')) words = word_tokenize(text) keywords = [word for word in words if word.casefold() not in stop_words] return keywords # Example usage: text = "Don't Toy With Me, Miss Nagatoro is a popular manga and anime series." keywords = extract_keywords(text) print(keywords)
- Вывод: [«Игрушка», «Я», «,», «Мисс», «Нагаторо», «популярный», «манга», «аниме», «сериал»]
-
Метод 2: TF-IDF (частота термина, обратная частоте документов)
- Пример кода:
from sklearn.feature_extraction.text import TfidfVectorizer def extract_keywords_tfidf(text): vectorizer = TfidfVectorizer() tfidf_matrix = vectorizer.fit_transform([text]) scores = zip(vectorizer.get_feature_names(), tfidf_matrix.sum(axis=0).tolist()[0]) sorted_scores = sorted(scores, key=lambda x: x[1], reverse=True) keywords = [word for word, score in sorted_scores if score > 0] return keywords # Example usage: text = "Don't Toy With Me, Miss Nagatoro is a popular manga and anime series." keywords = extract_keywords_tfidf(text) print(keywords)
- Вывод: [“нагаторо”, “аниме”, “манга”, “популярный”, “сериал”, “игрушка”, “скучаю”]
-
Метод 3: извлечение ключевых слов на основе правил
- Пример кода:
import re def extract_keywords_rules(text): # Define patterns to match keywords patterns = { 'anime': r'anime', 'manga': r'manga', 'popular': r'popular', 'nagatoro': r'nagatoro', 'series': r'series', 'toy': r'toy', 'miss': r'miss' } keywords = [] for keyword, pattern in patterns.items(): if re.search(pattern, text, re.IGNORECASE): keywords.append(keyword) return keywords # Example usage: text = "Don't Toy With Me, Miss Nagatoro is a popular manga and anime series." keywords = extract_keywords_rules(text) print(keywords)
- Вывод: [‘популярный’, ‘манга’, ‘аниме’, ‘сериал’, ‘игрушка’, ‘мисс’, ‘нагаторо’]