【Gensim概念】02/3 NLP玩转 word2vec

第二部分  句法

六、句法模型(类对象和参数)

6.1 数据集的句子查看

  • classgensim.models.word2vec.BrownCorpus(dirname)

        Bases: object

        迭代句子 Brown corpus (part of NLTK data).

6.2 数据集的句子和gram

  • classgensim.models.word2vec.Heapitem(countindexleftright)

Bases: Heapitem

Create new instance of Heapitem(count, index, left, right)

  • count  Alias for field number 0
  • index  Alias for field number 1
  • left  Alias for field number 2
  • right  Alias for field number 3

6.3 数据集的句子迭代器

  • classgensim.models.word2vec.LineSentence(sourcemax_sentence_length=10000limit=None)

        Bases: object

        迭代包含句子的文件:一行 = 一个句子。单词必须已经过预处理并用空格分隔。

        参数

  • source (string or a file-like object) – 磁盘上文件的路径或已打开的文件对象 (must support seek(0)).

  • limit (int or None) – 将文件句子数目剪辑到第一条限制数。如果 limit 为 None,则不进行剪裁

     (the default).

        例子

>>> from gensim.test.utils import datapath
>>> sentences = LineSentence(datapath('lee_background.cor'))
>>> for sentence in sentences:
...     pass

七、文档模型

7.1 数据集的目录迭代器

        指向目录,目录下有多个文件,将多文件句子当成一个集合体处理。

classgensim.models.word2vec.PathLineSentences(sourcemax_sentence_length=10000limit=None)

Bases: object

与 LineSentence同,但按文件名的字母顺序处理目录中的所有文件。

该目录只能包含可以读取的文件 gensim.models.word2vec.LineSentence: .bz2, .gz, and text files. Any file not ending with .bz2 or .gz 被假设是一个文本文件。

        路径中的文件(文本或压缩文本文件)的格式是一句话 = 一行,单词已经过预处理并以空格分隔。

警告:

        不会递归到子目录。

参数:

  • source (str) – 文件目录名称.

  • limit (int or None) – 仅读取每个文件中的第一个限制行。如果 limit 为 None(默认),则读取全部。

        classgensim.models.word2vec.Text8Corpus(fnamemax_sentence_length=10000)

        Bases: object

        迭代“text8”语料库中的句子,从下列获取: http://mattmahoney.net/dc/text8.zip. 

7.2 模型集的 Word2Vec

classgensim.models.word2vec.Word2Vec(sentences=Nonecorpus_file=Nonevector_size=100alpha=0.025window=5min_count=5max_vocab_size=Nonesample=0.001seed=1workers=3min_alpha=0.0001sg=0hs=0negative=5ns_exponent=0.75cbow_mean=1hashfxn=epochs=5null_word=0trim_rule=Nonesorted_vocab=1batch_words=10000compute_loss=Falsecallbacks=()comment=Nonemax_final_vocab=Noneshrink_windows=True)

        Bases: SaveLoad

训练、使用和评估中描述的神经网络  https://code.google.com/p/word2vec/.

        完成模型训练后(=不再更新,仅查询),仅在 self.wv 中存储和使用 KeyedVectors 实例以减少内存。

        完整模型可以通过其 save() 和 load() 方法存储/加载。

        经过训练的词向量还可以通过 self.wv.save_word2vec_format 和与原始 word2vec 实现兼容的格式进行存储/加载

gensim.models.keyedvectors.KeyedVectors.load_word2vec_format().

参数

  • sentence可迭代的可迭代可选)——可迭代的句子可以只是标记列表的列表,但对于较大的语料库,请考虑直接从磁盘/网络流式传输句子的可迭代。请参阅BrownCorpus、Text8Corpus 或模块LineSentence中的word2vec此类示例。另请参阅有关 Python 中的数据流的教程。如果您不提供statements,则模型将保持未初始化状态 - 如果您打算以其他方式初始化它,请使用它。

  • corpus_file ( str ,可选) – 格式的语料库文件的路径LineSentence。您可以使用此参数而不是句子来提高性能。只需要传递句子或 corpus_file参数之一(或者都不传递,在这种情况下,模型将保持未初始化状态)。

  • vector_size ( int ,可选) – 词向量的维数。

  • window ( int ,可选) – 句子中当前单词和预测单词之间的最大距离。

  • min_count ( int ,可选) – 忽略总频率低于此的所有单词。

  • Workers ( int ,可选) – 使用这些工作线程来训练模型(=使用多核机器进行更快的训练)。

  • sg ( {0 1} ,可选) – 训练算法:skip-gram 为 1;否则CBOW。

  • hs ( {0 1} ,可选) – 如果为 1,则将使用分层 softmax 进行模型训练。如果为0,并且负数非零,则将使用负采样。

  • negative ( int ,可选) – 如果 > 0,将使用负采样,负数的 int 指定应抽取多少“噪声词”(通常在 5-20 之间)。如果设置为 0,则不使用负采样。

  • ns_exponent ( float ,可选) – 用于塑造负采样分布的指数。值 1.0 与频率完全成比例地进行采样,0.0 对所有单词进行同等采样,而负值则对低频单词进行更多采样。最初的 Word2Vec 论文选择了流行的默认值 0.75。最近,在https://arxiv.org/abs/1804.04212中,Caselles-Dupré、Lesaint 和 Royo-Letelier 提出其他值对于推荐应用程序可能表现更好。

  • cbow_mean ( {0 1} ,可选) – 如果为 0,则使用上下文单词向量的总和。如果为 1,则使用平均值,仅在使用 cbow 时适用。

  • alpha ( float ,可选) – 初始学习率。

  • min_alpha ( float ,可选) –随着训练的进行,学习率将线性下降到min_alpha 。

  • seed ( int ,可选) – 随机数生成器的种子。每个单词的初始向量都以 word + str(seed)连接的哈希值作为种子。请注意,对于完全确定性可重现的运行,您还必须将模型限制为单个工作线程 ( workers=1 ),以消除操作系统线程调度中的排序抖动。(在 Python 3 中,解释器启动之间的再现性还需要使用PYTHONHASHSEED环境变量来控制哈希随机化)。

  • max_vocab_size ( int ,可选) – 限制词汇构建过程中的 RAM;如果有比这更多的独特单词,则修剪掉不常见的单词。每 1000 万个字型需要大约 1GB RAM。设置为None表示没有限制。

  • max_final_vocab ( int ,可选) – 通过自动选择匹配的 min_count 将词汇限制为目标词汇大小。如果指定的 min_count 大于计算出的 min_count,则将使用指定的 min_count。如果不需要,请设置为“无” 。

  • Sample ( float ,可选) – 配置哪些高频词被随机下采样的阈值,有用范围是 (0, 1e-5)。

  • hashfxn ( function ,可选) – 用于随机初始化权重的哈希函数,以提高训练的可重复性。

  • epochs ( int ,可选) – 语料库的迭代次数(epoch)。(以前:iter)

  • 修剪规则函数可选)-

    词汇表修剪规则,指定某些单词是否应保留在词汇表中、被修剪掉或使用默认值进行处理(如果字数 < min_count 则丢弃)。可以是 None (将使用 min_count,请查看),或者是接受参数(word、count、min_count)并返回、或 的keep_vocab_item()可调用函数 。该规则(如果给定)仅用于在 build_vocab() 期间修剪词汇,并且不会存储为模型的一部分。gensim.utils.RULE_DISCARDgensim.utils.RULE_KEEPgensim.utils.RULE_DEFAULT

    输入参数有以下几种类型:

    • word (str) - 我们正在检查的单词

    • count (int) - 语料库中单词的频率计数

    • min_count (int) - 最小计数阈值。

  • sorted_vocab ( {0 1} ,可选) – 如果为 1,则在分配单词索引之前按频率降序对词汇表进行排序。见sort_by_descending_frequency()。

  • batch_words ( int ,可选) – 传递给工作线程(以及 cython 例程)的示例批次的目标大小(以字为单位)。(如果单个文本长度超过 10000 个单词,则将传递更大的批次,但标准 cython 代码会截断为那个最大值。)

  • compute_loss ( bool ,可选) – 如果为 True,则计算并存储可以使用 检索的损失值 get_latest_training_loss()。

  • 回调(可迭代CallbackAny2Vec,可选)- 在训练期间的特定阶段执行的回调序列。

  • Shrink_windows ( bool ,可选) – 4.1 中的新增功能。实验性的。如果为 True,则在训练期间从每个目标单词的 [1, window ]中均匀采样有效窗口大小,以匹配原始 word2vec 算法按距离对上下文单词的近似加权。否则,有效窗口大小始终固定为两侧的窗口字。

7.2.1 使用实例

Initialize and train a Word2Vec model

>>> from gensim.models import Word2Vec
>>> sentences = [["cat", "say", "meow"], ["dog", "say", "woof"]]
>>> model = Word2Vec(sentences, min_count=1)

你可能感兴趣的:(NLP高级和ChatGPT,人工智能,自然语言处理,word2vec,人工智能)