Найти тему

Векторная модель текста


Вы хотите создать векторную модель текста на Python.
Давайте разберем это пошагово:

1. **Кодирование букв числами**: Вы можете использовать функцию ord() в Python для кодирования символов в числа. Например:

```python
char = 'a'
num = ord(char)
print(num) # Вывод: 97
```

2. **Представление слов в виде векторов**: Для этого можно использовать предобученные векторные модели, такие как Word2Vec или GloVe. Вы также можете обучить собственную модель, используя библиотеки как gensim или spaCy.

3. **Предложения как векторные матрицы**: Каждое предложение может быть представлено как комбинация векторов слов, например, путем усреднения векторов всех слов в предложении или с использованием других методов агрегации.

Вот пример кода для представления предложений как векторных матриц с использованием предобученной модели Word2Vec из библиотеки gensim:

```python
from gensim.models import Word2Vec
import numpy as np

# Загрузка предобученной модели Word2Vec
model = Word2Vec.load('path_to_pretrained_model')

def sentence_to_matrix(sentence, model):
words = sentence.split()
matrix = []
for word in words:
if word in model:
matrix.append(model[word])
return np.array(matrix)

# Пример использования
sentence = "This is a sample sentence"
sentence_matrix = sentence_to_matrix(sentence, model)
print(sentence_matrix)
```

Учтите, что для запуска этого кода вам нужно предварительно установить библиотеку gensim и иметь доступ к пред обученной модели Word2Vec.


***-----

# делаем простую модель из текста

from gensim.models import Word2Vec
from nltk.tokenize import word_tokenize
import os

# Загрузка текста из файла
file_path = 'фразы.txt'
with open(file_path, 'r', encoding='utf-8') as file:
    text = file.read()

# Токенизация текста
tokens = word_tokenize(text.lower())

# Обучение модели Word2Vec
model = Word2Vec([tokens], vector_size=100, window=5, min_count=1, workers=4)

# Сохранение модели
model.save('word2vec_model.bin')


**-----


# генерируем новый текст на основе полученной модели word2vec

from gensim.models import Word2Vec

# Загрузка обученной модели Word2Vec
model = Word2Vec.load('word2vec_model.bin')

# Функция для генерации текста по ключевым словам
def generate_text(keywords, num_words=500):
    generated_text = []
    for word in keywords:
        # Находим наиболее похожие слова
        similar_words = model.wv.most_similar(word, topn=5)
        # Добавляем наиболее похожие слова в сгенерированный текст
        generated_text.extend([w[0] for w in similar_words])
    # Ограничиваем количество слов, если необходимо
    generated_text = generated_text[:num_words]
    return ' '.join(generated_text)

# Запрос ключевых слов у пользователя
keywords_input = input("Введите ключевые слова: ").strip().split()
keywords = [word.strip() for word in keywords_input]

# Генерация текста
generated_text = generate_text(keywords, num_words=100)
print("Сгенерированный текст:")
print(generated_text)

**-----


по теме -
https://habr.com/ru/articles/781408/