将字符串标记转换为整数
Converting string tokens into integers
我正在尝试将句子的标记转换为整数。但它给了我花车。
from nltk.tokenize import word_tokenize
from gensim.models import Word2Vec
sometext = "hello how are you doing?"
tokens = word_tokenize(sometext)
model = Word2Vec([tokens], min_count=1, size=1)
当我这样做时,
print(model["hello"])
它给了我,
[-0.3843384]
我希望这是一个正整数。
没有必要为此使用 Word2Vec
。 Word2Vec
的要点是将单词映射到multi-dimensional、"dense"向量,有很多floating-point坐标。
虽然 Word2Vec
碰巧扫描你的训练语料库以查找所有独特的词,并为每个独特的词在其内部 data-structures 中指定一个整数位置,但你通常不会只制作 one-dimension (size=1
),或者向模型询问单词的整数槽(内部实现细节)。
如果你只需要一个 (string word)->(int id) 映射,gensim class Dictionary
可以做到。参见:
https://radimrehurek.com/gensim/corpora/dictionary.html
from nltk.tokenize import word_tokenize
from gensim.corpora.dictionary import Dictionary
sometext = "hello how are you doing?"
tokens = word_tokenize(sometext)
my_vocab = Dictionary([tokens])
print(my_vocab.token2id['hello'])
现在,如果确实有使用 Word2Vec
的正当理由 – 例如需要多维向量来获取更大的词汇量,在大量不同的文本上进行训练 – 而您真正需要的是了解 its 用于单词的内部整数槽,您可以通过内部 wv
属性 的 vocab
字典访问它们:
print(model.wv.vocab['hello'].index)
您可以使用 gensim corpora.Dictionary 为令牌创建字典和 ID。
from gensim import corpora
dictionary = corpora.Dictionary([tokens])
print(dictionary)
Dictionary(6 unique tokens: ['?', 'are', 'doing', 'hello', 'how']...)
token2id
print(dictionary.token2id)
{'?': 0, 'are': 1, 'doing': 2, 'hello': 3, 'how': 4, 'you': 5}
dictionary.token2id['hello']
3
我正在尝试将句子的标记转换为整数。但它给了我花车。
from nltk.tokenize import word_tokenize
from gensim.models import Word2Vec
sometext = "hello how are you doing?"
tokens = word_tokenize(sometext)
model = Word2Vec([tokens], min_count=1, size=1)
当我这样做时,
print(model["hello"])
它给了我,
[-0.3843384]
我希望这是一个正整数。
没有必要为此使用 Word2Vec
。 Word2Vec
的要点是将单词映射到multi-dimensional、"dense"向量,有很多floating-point坐标。
虽然 Word2Vec
碰巧扫描你的训练语料库以查找所有独特的词,并为每个独特的词在其内部 data-structures 中指定一个整数位置,但你通常不会只制作 one-dimension (size=1
),或者向模型询问单词的整数槽(内部实现细节)。
如果你只需要一个 (string word)->(int id) 映射,gensim class Dictionary
可以做到。参见:
https://radimrehurek.com/gensim/corpora/dictionary.html
from nltk.tokenize import word_tokenize
from gensim.corpora.dictionary import Dictionary
sometext = "hello how are you doing?"
tokens = word_tokenize(sometext)
my_vocab = Dictionary([tokens])
print(my_vocab.token2id['hello'])
现在,如果确实有使用 Word2Vec
的正当理由 – 例如需要多维向量来获取更大的词汇量,在大量不同的文本上进行训练 – 而您真正需要的是了解 its 用于单词的内部整数槽,您可以通过内部 wv
属性 的 vocab
字典访问它们:
print(model.wv.vocab['hello'].index)
您可以使用 gensim corpora.Dictionary 为令牌创建字典和 ID。
from gensim import corpora
dictionary = corpora.Dictionary([tokens])
print(dictionary)
Dictionary(6 unique tokens: ['?', 'are', 'doing', 'hello', 'how']...)
token2id
print(dictionary.token2id)
{'?': 0, 'are': 1, 'doing': 2, 'hello': 3, 'how': 4, 'you': 5}
dictionary.token2id['hello']
3