пары фраз связанные содержанием контекста слов
1. Подготовка данных:
Загрузите текст из файла фразы.txt.
Разделите текст на отдельные фразы или предложения.
2. Предобработка текста:
Удалите стоп-слова (например, "это", "в", "и" и т. д.).
Приведите текст к единому регистру (например, все в нижний регистр).
Удалите знаки препинания.
3. Выделение ключевых слов:
Используйте методы, такие как TF-IDF или Word2Vec, чтобы определить ключевые слова в каждой фразе.
Сохраните ключевые слова для каждой фразы.
4. Сравнение фраз:
Используйте метрики схожести (например, косинусное расстояние, Jaccard similarity) для сравнения ключевых слов между фразами.
Определите порог схожести, чтобы отобрать пары фраз, которые достаточно близки по содержанию.
5. Вывод результатов:
Сохраните или выведите пары фраз, которые имеют высокий уровень схожести.
Пример реализации на Python
Вот пример кода на Python, который демонстрирует этот процесс:
import re
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# Функция для предобработки текста
def preprocess_text(text):
text = text.lower() # Приведение к нижнему регистру
text = re.sub(r'[^\w\s]', '', text) # Удаление знаков препинания
return text
# Чтение файла и разделение на фразы
with open('фразы.txt', 'r', encoding='utf-8') as file:
text = file.read()
sentences = text.split('.') # Разделение по точкам
# Предобработка фраз
processed_sentences = [preprocess_text(sentence) for sentence in sentences]
# Вычисление TF-IDF
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(processed_sentences)
# Вычисление косинусного сходства
cosine_sim = cosine_similarity(tfidf_matrix)
# Нахождение пар фраз с высоким уровнем схожести
threshold = 0.3 # Порог схожести
pairs = []
for i in range(len(cosine_sim)):
for j in range(i + 1, len(cosine_sim)):
if cosine_sim[i][j] > threshold:
pairs.append((sentences[i], sentences[j]))
# Вывод результатов
for pair in pairs:
print("Пара фраз:")
print(f"1: {pair[0]}")
print(f"2: {pair[1]}")
print()
Объяснение кода:
Предобработка текста: Удаляет знаки препинания и приводит текст к нижнему регистру.
TF-IDF: Вычисляет векторы для каждой фразы.
Косинусное сходство: Определяет, насколько фразы похожи друг на друга.
Порог схожести: Позволяет отобрать только те пары, которые достаточно близки по смыслу.
Этот код можно адаптировать под ваши нужды, изменяя параметры или добавляя дополнительные методы предобработки.
* запишем результаты вывода похожих по смыслу фраз в файл - пары_фраз.txt
import re
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# Функция для предобработки текста
def preprocess_text(text):
text = text.lower() # Приведение к нижнему регистру
text = re.sub(r'[^\w\s]', '', text) # Удаление знаков препинания
return text
# Чтение файла и разделение на фразы
with open('your_file.txt', 'r', encoding='utf-8') as file:
text = file.read()
sentences = text.split('.') # Разделение по точкам
# Предобработка фраз
processed_sentences = [preprocess_text(sentence) for sentence in sentences]
# Вычисление TF-IDF
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(processed_sentences)
# Вычисление косинусного сходства
cosine_sim = cosine_similarity(tfidf_matrix)
# Нахождение пар фраз с высоким уровнем схожести
threshold = 0.35 # Порог схожести
pairs = []
for i in range(len(cosine_sim)):
for j in range(i + 1, len(cosine_sim)):
if cosine_sim[i][j] > threshold:
pairs.append((sentences[i].strip(), sentences[j].strip()))
# Запись результатов в файл
with open('пары_фраз.txt', 'w', encoding='utf-8') as output_file:
for pair in pairs:
output_file.write("Пара фраз:\n")
output_file.write(f"1: {pair[0]}\n")
output_file.write(f"2: {pair[1]}\n")
output_file.write("\n")
print("Результаты записаны в файл 'пары_фраз.txt'.")
Свидетельство о публикации №125061700656