пары фраз связанные содержанием контекста слов

Чтобы найти пары фраз в текстовом файле, которые связаны по содержанию и имеют схожие ключевые слова, можно использовать несколько шагов. Вот план действий, который поможет вам в этом процессе:

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'.")


Рецензии