sense2vec в python3

sense2vec - невероятный инструмент для получения синонимов и корреляций по ключевому слову.
Ключевое слово не обязательно должно состоять из одного слова, например «медицинский», это также может быть составное слово, например «машинное обучение».

sense2vec можно использовать сразу, не тренируя собственный корпус.
Фактически, он поставляется с двумя полностью предварительно обученными наборами векторов, а именно reddit_2019 и reddit_2015. Вот ссылка на официальную документацию, где вы можете их скачать.

Эта статья разделена на:
1 - УСТАНОВКИ
2 - ИМПОРТ БИБЛИОТЕК
3 - sense2vec
4 - ЧАСТО ЗАНИМАЮЩИЕСЯ ПРОБЛЕМЫ

Если вы только начинаете, я бы посоветовал выбрать набор reddit_2015. Он значительно меньше по размеру, и вы сможете запустить его даже на не очень мощном компьютере. В противном случае у вас будет ошибка oom-kill - нехватка памяти.

изображение Pexels с сайта Pixabay

1 - УСТАНОВКИ

pip install -U spacy
python -m spacy download en_core_web_sm
pip install sense2vec
pip install pathlib
# download your pretrained vectors set
cd directory/with/pretrained/set
tar -xvf vectors_md.tar.gz # you should see a s2v_old folder now

import spacy
from sense2vec import Sense2VecComponent,Sense2Vec                                         from pathlib import Path

def get_synonyms(KEYWORD)
    nlp = spacy.load(“en_core_web_sm”) 
    s2v = nlp.add_pipe(“sense2vec”) 
    path = Path(__file__).parent.joinpath(‘s2v_old’) 
    s2v.from_disk(path) 
    doc = nlp(KEYWORD) 
    assert doc[:].text == KEYWORD 
    freq = doc[:]._.s2v_freq 
    vector = doc[:]._.s2v_vec 
    try: 
       most_similar = list(doc[:]._.s2v_most_similar(30)) 
    except ValueError: 
       print(“No synonyms found in sense2vec.”) 
       return ([])
    syns = [s[0][0].lower() for s in most_similar if s[1] > 0.66]
    syns = [re.sub(r’[^a-zA-Z\s:]’, ‘’, s) for s in syns] 
    return (list(syns))

. Мы добавляем конвейер в sense2vec - sense2vec уже поставляется с набором операций, передаваемых по конвейеру через этот обрабатывающий текст, таких как удаление стоп-слов; добавляя канал, мы добавляем дополнительные операции в конец канала. Вы можете рассматривать канал как набор операций, связанных друг с другом.

Вы можете добавить Path (), чтобы python мог найти вашу папку независимо от того, где она находится на вашем компьютере - иначе вы можете жестко указать свой относительный путь к папке в s2v.from_disk (path / to / pretrained / vectors / folder )

. doc[:].text == KEYWORDищет ключевое слово во всем предварительно обученном тексте, и мы можем его частоту и векторные атрибуты

. Мы используем try / за исключением случая, когда нашего ключевого слова нет в word2vec.
С most_similar = list(doc[:]._.s2v_most_similar(30)), мы получаем первые 30 синонимов, найденных sense2vec.
Если ключевое слово найдено, мы создаем список всех его синонимов и корреляций, оценка которых превышает 0,66 (при необходимости измените это значение).
Наконец, мы очищаем списки от всех знаков препинания и возвращаем их.

4 - ЧАСТО ЗАНИМАЕМЫЕ ПРОБЛЕМЫ

Если вы получите следующую ошибку,
raise ValueError(f"Can't read file: {location}")
ValueError: Can't read file: ../filtering_models/vectors_md/cfg
удалите папку s2v_old и повторно разверните vectors_md.tar.gz.
Если вы все еще получаете эту ошибку, проверьте свой относительный путь к папке s2v_old.

фото Влада Чечана из Pexels

Suggested posts

Как бесплатно запускать плагины ChatGPT с помощью Langchain

Как бесплатно запускать плагины ChatGPT с помощью Langchain

Вы, должно быть, слышали обо всех новых мощных плагинах ChatGPT, таких как Browser, Code Interpreter и т. д. Но есть проблема: доступ к плагинам ограничен списком ожидания, и поэтому многие не имеют к нему доступа.

Изучение моделей ChatGPT и моделей с открытым исходным кодом на более сложных задачах

Изучение моделей ChatGPT и моделей с открытым исходным кодом на более сложных задачах

LLM с открытым исходным кодом, такие как Vicuna и MPT-7B-Chat, появляются повсюду, что привело к многочисленным дискуссиям о том, как эти модели сравниваются с коммерческими LLM (такими как ChatGPT или Bard). Большая часть сравнения проводилась по ответам на простые вопросы/инструкции.

Related posts

«Обнаруженная Марианская впадина: раскрытие ужасающих скрытых истин бездны»

«Обнаруженная Марианская впадина: раскрытие ужасающих скрытых истин бездны»

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

Поиск информации о доменных именах

Отрывок из книги «Маленькие программные инструменты Sharp» Брайана П. Хогана.

Поиск информации о доменных именах

Когда вы делаете запрос на facebook.com, ваш компьютер ищет доменное имя, чтобы преобразовать это доменное имя в IP-адрес, чтобы ваш компьютер мог установить это соединение.

Больше никаких паролей — как пароли заменят ваш пароль

Больше никаких паролей — как пароли заменят ваш пароль

Во избежание двусмысленности будут использоваться следующие термины; Аутентификатор; Мобильный телефон, используемый для входа на веб-сайт; веб-сайт или приложение, которое пользователь использует для выполнения запроса на вход в систему; Поставщик, предоставляющий данную услугу, например

Преследование христиан: преступление на почве ненависти, о котором мы не говорим

Забудьте об исламофобии: христиане (и евреи) являются главными жертвами преступлений на почве религиозной ненависти.

Преследование христиан: преступление на почве ненависти, о котором мы не говорим

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