如何返回相似词?
我有这样的Python代码,这段代码应该简单地打印数组给定的类似的单词,例如,“日本”
代码:
import spacy
import numpy as np
# Load the larger pre-trained English model
nlp = spacy.load("en_core_web_md")
# Get the vector for "japan"
word_vec = nlp("japan").vector
# Reshape the word_vec array to have a second dimension of size 1
word_vec = np.reshape(word_vec, (1, -1))
# Find the 3 most similar words to "japan"
most_similar = nlp.vocab.vectors.most_similar(word_vec, n=3)
# Extract the words from the most_similar list
similar_words = [nlp.vocab.strings[similar[0]] for similar in most_similar]
print(similar_words)
错误
user@users-MacBook training % python3 main.py
Traceback (most recent call last):
File "/user/project/training/main.py", line 17, in <module>
similar_words = [nlp.vocab.strings[similar[0]] for similar in most_similar]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/user/project/training/main.py", line 17, in <listcomp>
similar_words = [nlp.vocab.strings[similar[0]] for similar in most_similar]
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "spacy/strings.pyx", line 156, in spacy.strings.StringStore.__getitem__
TypeError: only size-1 arrays can be converted to Python scalars
打印most_similar
时
(array([
[ 6726951824429389069,
10815251124955538419,
4763767604223487472
]
],
dtype=uint64),
array([
[10959,
11621,
16082]
], dtype=int32), array([[1. , 0.6241, 0.575 ]], dtype=float32))
我明白了,但我不能把它转换成文字
我该怎么修呢?
1条答案
按热度按时间mefy6pfw1#
similar[0]
到similar[0][0]
,它将被修复