Github 上的顶级 NLP 项目,你应该亲自动手 [2022]

已发表: 2021-01-01

人工智能有多个分支,其中自然语言处理 (NLP) 已成为一种强大的新时代工具。 NLP 可以追溯到 1950 年代,当时 Alan Turing 发表了一篇文章——“计算机与智能”——提出了一项涉及自动解释和生成自然人类语言的测试(现在称为图灵测试)。 即便如此,NLP 直到最近才获得全球认可和普及。

目录

什么是自然语言处理?

自然语言处理就是为了促进人机通信。 它旨在训练计算机理解、解释和操纵自然人类语言。 NLP 从人工智能、计算机科学和计算语言学等多个学科中汲取灵感。

人类使用他们的母语进行交流,例如英语、日语、西班牙语等,而计算机则使用他们的母语(二进制语言)进行交流。 虽然计算机无法理解我们的自然人类语言,但机器语言对大多数人来说大多是不可理解的。

这就是 NLP 进入以弥合人类交流和计算机理解之间的差距的地方。 自然语言处理通过帮助他们阅读文本、听到语音、解释音频/文本消息、测量情绪等,授权并训练计算机以他们的母语与人类交流。

随着数字世界中日常交互和交易带来的数据爆炸式增长,自然语言处理对企业来说变得越来越重要。 借助 NLP,公司可以利用大量原始业务数据、社交媒体聊天等来理解数据并做出面向数据的决策。

在本文中,我们将列出 GitHub 上的 12 个 NLP 项目,以激发您的灵感! 从事这些项目将有助于丰富您的领域知识并提高您的实际技能。

热门 GitHub NLP 项目

1. 释义识别

释义检测是一种 NLP 应用程序,它检测两个不同的句子是否具有相同的含义。 它广泛用于机器翻译、问答、信息提取/检索、文本摘要和自然语言生成。

这是一个对初学者友好的项目,您将在其中构建一个释义识别系统,该系统可以通过对其进行句法和语义分析来准确识别两个文本实体(例如句子)之间的异同。

2. 文档相似性

这是另一个对初学者友好的项目,旨在通过使用余弦相似度方法来量化两个文档之间的相似度。 通过寻找两篇论文之间的相似之处,该项目将突出讨论的共同主题。

余弦相似度将两个文档转换为向量以计算这些向量之间的相似度。 它通过采用测量它们之间的余弦角的内积空间来计算文档相似度。

3.文本预测

在这个项目中,您将构建一个可以在您键入单词时预测下一个单词的应用程序。 用于创建此文本预测项目的工具包括自然语言处理、文本挖掘和 R 的工具套件。

该项目使用具有 Kneser Ney 平滑的最大似然估计器作为预测模型。 预测是针对存储在用于训练模型的数据库中的单词集合而设计的。 您可以在 GitHub 上找到该项目的完整资源集。

4.天才的科学

该项目是成功科学项目的一部分 这里的目的是使用大量数据科学和 NLP 分析工具,确定特定的词汇因素是否可以表明文章受到的关注度,通过标准化引用指数来衡量。

在初始阶段,该项目的重点是研究Web of Science中文章标题的长度和句法特征的时间和学科差异——一个包含自 1900 年以来发表的超过 5000 万篇文章的数据集。更大的图景是创建一个定量模型可以准确估计一篇科学论文对社区的影响。

5. 从新闻标题中提取股票情绪

正如标题所示,您将使用 Finviz 对财经新闻头条的情绪分析来产生对该项目的投资见解。 情绪分析技术将帮助您理解和解释头条新闻背后的情绪,并预测当前市场情况是否有利于特定股票。

6.智能机器人

该项目涉及构建一个智能机器人,该机器人可以解析和匹配来自特定存储库的结果以回答问题。 该机器人使用 WordNet 进行此操作。 它权衡与结构化文档中的标签(例如标题、粗体标题等)有关的问题的上下文。 由于它保留了上下文,因此您可以围绕同一主题提出相关问题。

例如,如果您想查询 Wikipedia 文章,您可以使用模板“告诉我关于 XYZ”,并在建立上下文后继续提出类似的问题。 同样,您可以通过将页面的 URL 作为来源来查询网页,例如“ https://www.microsoft.com/en-us/software-download/faq ”。 这非常适用于常见问题解答和问答页面。

7. CitesCyVerse

CitesCyVerse 项目是在The Science Citation Knowledge Extractor上设计的 CitesCyVerse 是一个开源工具,它利用机器学习和 NLP 来帮助生物医学研究人员通过分析引用他们的文章中的内容来了解​​其他人如何使用他们的工作。 通过使用 ML 和 NLP,CitesCyVerse 提取了施引文件中讨论的突出主题和概念。 这使研究人员能够更好地了解他们的工作如何影响科学界的其他人。

CitesCyVerse 包括 WordClouds,它可以从引用论文中提到的相似词生成新的云。 此外,它还具有主题,可让您探索引用 CyVerse 的文章和出版物的热门主题。

8. Data Science Capstone – 数据处理脚本

在此数据科学顶点项目中,您将使用数据处理脚本来演示数据工程,而不是创建 n-gram 模型。 这些脚本可以处理整个语料库以生成 n-gram 及其计数。 您可以使用这些数据来开发预测文本算法。

要构建这个项目,您需要一个至少 16GB RAM 的双核系统(因为大多数脚本都是单线程的)。 至于软件要求,您需要 - Linux(最好在 Ubuntu 14.04 上测试)、Python(2.7 版)、NLTK(3.0 版)和 NumPy。

阅读:自然语言处理项目的想法和主题

9. 脚本生成器

这是一个令人兴奋的项目,您将在其中构建 RNN,以根据该节目所有 27 季的脚本数据集为热门节目“辛普森一家”生成电视脚本。 RNN 将为在 Moe's Tavern 拍摄的特定场景生成一个新脚本。

脚本生成器项目是 Udacity 深度学习纳米学位的一部分。 项目实现包含在:dlnd_tv_script_generation.ipynb

10. Reddit 股票预测

该项目旨在了解社交媒体帖子如何影响个股的未来价格。 在这里,我们将使用文本分析方法研究社交媒体帖子对 Reddit 的影响,尤其是投资重点子版块/论坛。

您可以使用 GitHub 存储库文件清理情绪分析并将其应用于 Reddit 帖子/评论,并使用此数据创建回归模型。 该存储库还包含可用于交互式 Web 应用程序的代码,用于可视化特定股票代码的实时情绪并做出相关预测。

11. Me_Bot

这是一个有趣的 NLP 项目,您将在其中开发一个名为 Me_Bot 的机器人,该机器人将利用您的 WhatsApp 对话,向他们学习,并像与其他人一样与您交谈。 本质上,这个想法是创建一个像你一样说话的机器人。

您需要从手机中导出 WhatsApp 聊天记录,并根据这些数据训练机器人。 为此,您必须在手机上访问 WhatsApp,选择任何对话,然后从应用程序的设置中导出。 然后您可以将生成的“.txt”文件转移到 Me_Bot 文件夹中。

12. 语音情感分析器

该项目围绕创建一个 ML 模型展开,该模型可以从我们日常生活中常见的对话中检测情绪。 ML 模型可以检测多达五种不同的情绪,并根据您当前的情绪提供个性化的建议。

这种基于情感的推荐引擎对许多行业具有巨大的价值,因为他们可以使用它向高度针对性的受众和买家角色进行销售。 例如,在线内容流媒体平台可以使用此工具通过阅读个人当前的心情和偏好,向他们提供定制的内容建议。

另请阅读:深度学习与 NLP

结论

这样,我们就到了列表的末尾。 GitHub 上的这 12 个 NLP 项目非常适合磨练您的编码和项目开发技能。 最重要的是,项目建设将帮助您掌握自然语言处理的细微差别,从而增强您的领域知识。

如果您想提高您的 NLP 技能,您需要亲身体验这些 NLP 项目。 如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭,该文凭专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT- B 校友身份、5 个以上实用的实践顶点项目和顶级公司的工作协助。

自然语言处理的主要挑战是什么?

自然语言处理有很多挑战。 主要问题是缺乏计算能力。 当前的算法被创建为在需要巨大计算能力并且可能需要更多时间来完成处理的离线系统中运行。 另一个问题是可用资源。 创建一个可以处理少量数据的算法并不容易,而且更耗时。 另一个挑战是我们需要处理的大量数据的可用性。

哪个 NLP 模型给出了最好的准确率?

NLP 模型的最佳准确性是通过将文本通过一系列日益复杂的过滤器来实现的。 第一层是去除停用词、标点符号和数字。 之后,应使用 Porter 词干分析器对整个文本进行词干提取,然后将所有单词替换为其词形还原形式。 然后,最后一步是删除 200,000 个单词的词汇表中不存在的任何单词。

什么是 NLP 中的标记化?

标记化是将句子分解为其组成部分的过程,称为标记。 应用该过程后,我们可以轻松提取句子的含义或意图。 在进行句子拆分之后进行标记化。 在 NLP 中,token 用于句子的进一步处理、分类和表示。 一些涉及标记化的 NLP 任务是语言检测、POS 标记和解析。