practical-1, 牛津深层 NLP 2017课程实践 1

分享于 

5分钟阅读

GitHub

  繁體 雙語
https://www.cs.ox.ac.uk/teaching/courses/2016-2017/dl/
  • 源代码名称:practical-1
  • 源代码网址:http://www.github.com/oxford-cs-deepnlp-2017/practical-1
  • practical-1源代码文档
  • practical-1源代码下载
  • Git URL:
    git://www.github.com/oxford-cs-deepnlp-2017/practical-1.git
    Git Clone代码到本地:
    git clone http://www.github.com/oxford-cs-deepnlp-2017/practical-1
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/oxford-cs-deepnlp-2017/practical-1
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    实际 1: word2vec

    [Brendan Shillingford, Yannis Assael, Chris Dyer ]

    为这里,你将提供一个完整的,笔记本,一个交互式 web python 计算环境,允许我们混合文本。

    我们将使用 python 包 gensim 中包含的word2vec实现来训练 TED Talk和Wikipedia数据上的word2vec模型。 对模型进行训练后,我们将分析和可视化学习的。

    安装和安装

    在实验工作站上,克隆实际的存储库,在一个终端上运行 . install-python.sh shell script,以及用 python 3安装的包。

    在存储库目录中运行 ipython notebook,并在浏览器中打开 practical.ipynb

    Preliminaries

    预处理

    下载数据集和预处理数据的代码是预先编写好的,以节省时间。 但是,预期你将需要在未来的practicals中执行这样的任务,给出原始数据。 读它并确保你理解它。 通常,人们使用 nltk 这样的库简化这个任务,但是我们没有这样做,而是选择通过 python 模块 re 来使用 正规表达式。

    单词频率

    列出最常用单词及其出现次数。 看看最上面的40字。 你可能需要使用模块类的sklearn.feature_extraction.textCountVectorizer 或者模块类的collectionsCounter

    用最上面的1000字,plot的统计直方图。 交互式直方图的打印代码已经在笔记本中给出。

    Handin: 显示频率分布直方图。

    培训 Word2Vec

    现在我们已经处理了一个句子列表,让我们来运行word2vec训练。 首先,阅读gensim文档的文档,了解如何使用 Word2Vec 类。 使用 CBOW ( 这是默认的) 学习 $mathbb R^ {100} $ 中的嵌入。 除了 min_count=10 之外,其他选项应该是默认的,这样不常用的词就会被忽略。 培训过程应该在半分钟之内完成。

    如果训练的Word2Vec 实例称为 model_ted,那么你应该能够使用 len(model_ted.vocab) 检查词汇表大小,它应该在 14427左右。 尝试使用 most_similar() 方法将最相似的单词列表返回"人"和"计算机"。

    Handin: 找到一些有趣和/或者最近邻的单词。

    Handin: 在t plot 找到一个兴趣集群。

    可选,适用于热心学生: 尝试使用索引操作符手动检索两个单词向量,如gensim文档中所述,然后计算机的余弦距离为( 回想它被定义为 $d(x,y) = break {langle x, y rangle} {|x||y|} $ )。 你可能对 np.dot()np.linalg.norm() 感兴趣,有关详细信息,请参阅numpy文档。 gensim函数计算的距离进行比较。

    与 WikiText-2 数据训练的向量的比较

    我们为 WikiText-2 数据集提供了下载/预处理代码( 类似于前面的代码)。 代码使用随机的数据随机化,因此它与 TED Talk数据的大小是相当的。

    重复与 上面 相同的分析,但在这里数据集中重复。

    Handin: 查找一些最近邻相近的单词。

    Handin: 在t plot 找到一个兴趣集群。

    :与TED数据相比,嵌入学习数据之间的差异有什么显著差异

    (。可选,用于热心学生) 集群

    如果你有额外的时间,尝试执行一个k 均值集群( 比如。 在嵌入时使用 sklearn.cluster.kmeans ),在获得有趣或者有意义的集群之前,调整集群的数量。

    Handin

    查看粗体 Handin: "parts parts在纸或者口头上,展示一个实际的演示,你对这些demonstrator作出回应,以便让你签字。


    DEEP  NLP  
    相关文章