Сходство spaCy — установка sense2vec или word2vec по умолчанию

Я наткнулся на один из сообщений в блоге spaCy, который представляет идею sense2vec, а также есть онлайн интерфейс для игры с его наиболее похожей функцией, а также онлайн-инструмент для работы с функцией подобия, предоставленной spaCy.

Я просто не мог понять, основаны ли эти инструменты на алгоритме sense2vec или на обычной предварительно обученной модели word2vec (я говорю о большой английской модели).

Есть ли способ определить, с какой моделью я хотел бы работать?

Дело в том, что


person Lior Magen    schedule 24.01.2018    source источник


Ответы (1)


Вы можете загрузить свои собственные векторы, следуя этим инструкциям в документации. Используя этот процесс, вы сможете загрузить векторы sense2vec.

Модели, используемые для методов .similarity(), представляют собой либо полную модель word2vec, либо тензоры, в зависимости от того, используете ли вы большую или маленькую модель. инструмент подобия предложений, на который вы ссылались, описывает следующее:

По умолчанию spaCy использует алгоритм усреднения векторов с использованием предварительно обученных векторов, если они доступны (например, модель en_core_web_lg). Если нет, используется атрибут doc.tensor, созданный тегировщиком, синтаксическим анализатором и распознавателем сущностей. Вот как модель en_core_web_sm обеспечивает сходство. Обычно сходство на основе .tensor будет более структурным, в то время как сходство вектора слова будет более актуальным. Вы также можете настроить метод .similarity(), чтобы предоставить свою собственную функцию сходства, которую можно обучить с помощью контролируемых методов.

person pmbaumgartner    schedule 24.01.2018
comment
Я знаю, как читать их документальный фильм, и сделал это, прежде чем спросить. Вы не ответили на мой вопрос, мой вопрос: если сейчас я загружу вектор для данного предложения, будет ли этот вектор загружен из простой модели word2vec/glove или из модели sense2vec? Чтобы использовать sense2vec, я должен вручную добавить тег POS к каждому токену и просто преобразовать с использованием модели или преобразовать как есть, и это даст правильный вектор sense2vec? - person Lior Magen; 25.01.2018
comment
Вектор для предложения по умолчанию будет средним значением векторов перчаток по умолчанию для слов в этом предложении. Каждому токену уже приписана POS при его анализе, поэтому вам не придется этого делать. Вы можете использовать этот факт и vocab.set_vector() для использования векторов sense2vec. (см. здесь: spacy.io/usage/vectors-similarity#custom-vectors- добавить) - person pmbaumgartner; 26.01.2018
comment
Я видел эту ссылку и до сих пор не понимаю, как мне добраться до векторов sense2vec. Я не хочу обучать новые векторы, но хочу, чтобы каждый вектор основывался как на контексте (word2vec/Glove), так и на включенных тегах POS/NER, чтобы он различал, например, Apple (плод) и Apple (компания), как мне получить такие векторы? или это просто доступно в виде онлайн-демонстрации? - person Lior Magen; 28.01.2018
comment
Насколько я понимаю, вам придется просмотреть словарь, который вы используете, и вручную назначить векторы из sense2vec каждому токену. Я не уверен, как лучше всего это сделать, но теоретически это возможно. Нет простого решения, которое просто говорит spacy использовать sense2vec вместо GloVe. - person pmbaumgartner; 01.02.2018