Как с помощью FastText найти слово, похожее на два ключевых слова?

Я пытаюсь найти слова, похожие на два разных слова. Я знаю, что могу найти наиболее похожее слово с FastText, но мне было интересно, есть ли способ найти ключевое слово, похожее на два ключевых слова. Например, «яблоко» похоже на «апельсин», а также на «киви». Итак, что я хочу сделать, так это если у меня есть два слова, «орган» и «киви», то я хотел бы получить предложение по ключевому слову «яблоко» или любые другие фрукты. Есть ли способ сделать это?

2 ответа

Я думаю, что для этой функции нет готовой функции.

В любом случае вы можете подумать об этом простом подходе:

  1. Загрузите предварительно обученное вложение (доступно здесь)
  2. Получите приличное количество ближайших соседей за каждое интересующее слово
  3. Поиск пересечений в ближайших соседях двух слов

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

Пример кода:

      import fasttext

# load the pretrained model
# (in the example I use the Italian model)
model=fasttext.load_model('./ml_models/cc.it.300.bin')

# get nearest neighbors for the interested words (100 neighbors)
arancia_nn=model.get_nearest_neighbors('arancia', k=100)
kiwi_nn=model.get_nearest_neighbors('kiwi', k=100)

# get only words sets (discard the similarity cosine)
arancia_nn_words=set([el[1] for el in arancia_nn])
kiwi_nn_words=set([el[1] for el in kiwi_nn])

# compute the intersection
common_similar_words=arancia_nn_words.intersection(kiwi_nn_words)

Пример вывода (на итальянском языке):

      {'agrume',
 'agrumi',
 'ananas',
 'arance',
 'arancie',
 'arancio',
 'avocado',
 'banana',
 'ciliegia',
 'fragola',
 'frutta',
 'lime',
 'limone',
 'limoni',
 'mandarino',
 'mela',
 'mele',
 'melograno',
 'melone',
 'papaia',
 'papaya',
 'pera',
 'pompelmi',
 'pompelmo',
 'renetta',
 'succo'}

Я уже много лет использую реализацию Gensim W2V для таких вычислений, но Gensim также имеет реализацию FastText: https://radimrehurek.com/gensim/models/fasttext.html

Другие вопросы по тегам