使用 word2vec 检索 n-gram
Retrieve n-grams with word2vec
我有一个文本列表。我将每个文本变成一个标记列表。例如,如果其中一个文本是 'I am studying word2vec'
,则相应的标记列表将是(假设我认为 n-gram 的 n = 1、2、3)['I', 'am', 'studying ', 'word2vec, 'I am', 'am studying', 'studying word2vec', 'I am studying', 'am studying word2vec']
.
- 这是转换任何文本以应用
most_similar()
的正确方法吗?
(我也可以删除包含至少一个停用词的 n-gram,但这不是我的问题的重点。)
我将此标记列表称为 texts
。现在我建立模型:
model = Word2Vec(texts)
那么,如果我使用
words = model.most_similar('term', topn=5)
- 有没有办法确定我会得到什么样的结果?例如,如果
term
是一个 1-gram 那么我会得到一个包含五个 1-gram 的列表吗?如果 term
是一个 2-gram 那么我会得到一个包含五个 2-gram 的列表吗?
一般来说,确定尝试某些事情会得到“什么样的结果”的最好方法是尝试这些事情,然后观察实际得到的结果。
在为 word2vec 训练准备文本时,通常不会将输入文本转换为您显示的形式,并添加一堆 space-delimited 个单词 n-grams。相反,字符串 'I am studying word2vec'
通常只是 preprocessed/tokenized 到(unigram)标记列表,如 ['I', 'am', 'studying', 'word2vec']
.
然后,该模型将为每个单词学习一个向量——没有用于多重字母的向量。由于它只知道这样的 1-word 向量,因此它从 .most_similar()
报告的所有结果也将是单个单词。
您可以根据对文本的某种统计或语义理解,对文本进行预处理,将一些词组合成多词实体。通常,此过程会将 runs-of-related-words 转换为 underscore-connected 单个标记。例如,'I visited New York City'
可能会变成 ['I', 'visited', 'New_York_City']
。
但是任何此类预处理决策都与 word2vec 算法本身是分开的,该算法仅将您提供的任何 'words' 视为 looking-up vectors-in-training 的 1:1 键。它只知道标记,而不是 n-grams.
我有一个文本列表。我将每个文本变成一个标记列表。例如,如果其中一个文本是 'I am studying word2vec'
,则相应的标记列表将是(假设我认为 n-gram 的 n = 1、2、3)['I', 'am', 'studying ', 'word2vec, 'I am', 'am studying', 'studying word2vec', 'I am studying', 'am studying word2vec']
.
- 这是转换任何文本以应用
most_similar()
的正确方法吗?
(我也可以删除包含至少一个停用词的 n-gram,但这不是我的问题的重点。)
我将此标记列表称为 texts
。现在我建立模型:
model = Word2Vec(texts)
那么,如果我使用
words = model.most_similar('term', topn=5)
- 有没有办法确定我会得到什么样的结果?例如,如果
term
是一个 1-gram 那么我会得到一个包含五个 1-gram 的列表吗?如果term
是一个 2-gram 那么我会得到一个包含五个 2-gram 的列表吗?
一般来说,确定尝试某些事情会得到“什么样的结果”的最好方法是尝试这些事情,然后观察实际得到的结果。
在为 word2vec 训练准备文本时,通常不会将输入文本转换为您显示的形式,并添加一堆 space-delimited 个单词 n-grams。相反,字符串 'I am studying word2vec'
通常只是 preprocessed/tokenized 到(unigram)标记列表,如 ['I', 'am', 'studying', 'word2vec']
.
然后,该模型将为每个单词学习一个向量——没有用于多重字母的向量。由于它只知道这样的 1-word 向量,因此它从 .most_similar()
报告的所有结果也将是单个单词。
您可以根据对文本的某种统计或语义理解,对文本进行预处理,将一些词组合成多词实体。通常,此过程会将 runs-of-related-words 转换为 underscore-connected 单个标记。例如,'I visited New York City'
可能会变成 ['I', 'visited', 'New_York_City']
。
但是任何此类预处理决策都与 word2vec 算法本身是分开的,该算法仅将您提供的任何 'words' 视为 looking-up vectors-in-training 的 1:1 键。它只知道标记,而不是 n-grams.