Вы хотите создать векторную модель текста на 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/