我已经使用gensim训练了word2vec模型。在模型矩阵中,某些值的浮点如下所示:“ -7.18556e-05”
我需要将矩阵上的值用作字符串。有没有办法删除那些“ e-05”,“ e-04”等?
import nltk
from gensim.models import Word2Vec
from nltk.corpus import stopwords
text = "My text is here"
sentences = nltk.sent_tokenize(text)
for i in range(len(sentences)):
sentences[i] = [word for word in sentences[i] if word not in stopwords.words('english')]
model = Word2Vec(sentences, min_count=1)
words = model.wv.vocab
for word in words:
matrix = model.wv[words.keys()]
[请注意,这些科学符号打印输出是有效的字符串,并且Python和许多可能在输出中使用的读取例程将理解它们。
而且,当出于某些特定目的进行打印时,可以使用各种格式设置选项(包括注释中提到的.format()
选项)来获取所需的确切信息。 (您尚未显示当前使用的触发矩阵/阵列显示的哪种方法,因此尚不清楚在关键的输出点上最好的改变显示的建议。)
而且:gensim
和大多数相似库中的所有向量/矩阵通常由numpy
提供,它具有更改显示选项的全局设置,包括用于完全停止这种表示法的suppress
参数。请参阅其他答案以获取更多详细信息:
https://stackoverflow.com/a/2891805/130288
最终,您可能不希望在某个预先的时间和全局范围内依赖此设置,以在一个特定的有意位置获得所需的输出。为此,将使用更清晰,更强大的代码来显式格式化结果。但是作为快速解决方案,以上内容可能适合您的需求。