Nano Hash - криптовалюты, майнинг, программирование

Gensim - как работать с моделью word::tag

Я пытаюсь загрузить предварительно обученную модель word2vec с помощью gensim. Хотя модель помечена, у каждого слова есть тег, который сообщает, какую часть речи представляет это слово.

Например:

big::adj 0.041660 0.045049 -0.204449 0.102298 0.045326 -0.172079 0.197417 -0.012363 0.127003 0.040437 -0.003397 0.048288 0.072291 0.044205 -0.055407 -0.075357 -0.154024 0.021732 0.224021 -0.243452 -0.048776 -0.002823 0.110283 -0.052014 0.104335 -0.108122 -0.033678 -0.098096 -0.012307 0.086673 -0.028013 0.005308 -0.196080 0.002180 -0.004461 0.021646 -0.051721 -0.123485 -0.230521 0.106092 -0.206776 0.137945 0.020572 0.071123 0.042434 0.123633 -0.001925 -0.172347 -0.040973 0.135886 0.057297 -0.027319 0.066697 0.138673 -0.028331 -0.094053 -0.160371 0.158397 0.053368 -0.002126 -0.111501 0.030450 -0.054284 -0.004832 -0.065144 0.030546 -0.011896 -0.103835 -0.007947 0.120997 0.178889 -0.155029 -0.054059 -0.313675 0.061776 -0.060536 0.038848 -0.097532 -0.038358 -0.032634 0.108534 0.067584 0.044829 0.003414 0.028115 -0.010523 0.131776 0.071750 0.045095 0.046262 0.001212 -0.005994 -0.022401 -0.036971 -0.024755 0.096701 -0.026736 -0.029698 -0.107293 -0.038610

Может ли кто-нибудь указать мне, как загрузить такую ​​модель, чтобы я мог запросить модель ['big']? Прямо сейчас это просто не работает, когда я пытаюсь использовать KeyedVectors.load().

12.06.2018

  • Откуда взялась ваша модель? Я предполагаю, что вам нужно пометить слова, прежде чем пытаться получить для них векторы, поэтому вам нужно model['big::adj'] вместо model['big']. 14.06.2018
  • Модель взята с: clarin-pl.eu/dspace/handle/11321/327 16.06.2018

Ответы:


1

Как указано в ваших примерах данных, вы должны дать словам тег части речи, прежде чем использовать их. Из файла README (opis.txt), прилагаемого к вашим векторам:

Tzn że w samym modelu znajdują się słowa zapisane w następujący sposób:
    lemmat::pos np. pszczoła::noun

Гугл перевел:

That is, in the model itself there are words written in the following way:
    lemma :: pos eg. bee :: noun

README также предоставляет список допустимых частей речи.

Поскольку векторы слов были обучены таким образом, не существует допустимого вектора для слова без части речи.

Если по какой-то причине вам нужен вектор без части речи, вы можете перебрать все возможные части речи и взять среднее значение векторов следующим образом:

vectors = pretrained_vectors
word = 'bee'
parts_of_speech = ['noun', 'verb', etc...]
vec = zero_vector
pos_count = 0
for part in parts_of_speech:
    key = word + '::' + part
    if key in vectors:
        vec += vectors[word + '::' + part]
        pos_count += 1

vec = vec / pos_count
# if actually using code like this, use numpy and watch for zero division

Тем не менее, я подозреваю, что полученные векторы могут иметь проблемы. Лучшим вариантом является поиск предварительно обученных векторов, в которых не используются части речи, например предоставленные Fasttext.

18.06.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..