自然语言处理(NLP)是机器学习的一部分。使用自然语言进行人机交互是NLP研究的主题。NLP在行业中有着广泛的应用,如:苹果Siri语音对话助手、语言翻译工具、情感分析工具、智能客服系统等。
本文介绍一些有创意的NLP开源项目,包含从新手的简单NLP项目到专家的挑战性NLP项目,这些应该有助于提高NLP的实践能力。
一、四个为初学者项目
1.关键词提取
该项目的目标是使用TF-IDF和Python的Scikit-Learn库从数据文本中提取有趣的关键字。数据集是StackOverflow。
源代码:https://github.com/kavgan/nlp-in-practice/tree/master/tf-idf
2.使用Seq2Seq模型的聊天机器人
这个项目使用Seq2Seq模型来构建一个简单的聊天机器人。Python代码中使用了TensorFlow库。
源代码:https://github.com/llSourcell/tensorflow_chatbot
3.语言标识符
在网页中识别特定文本的语言,需要过滤多种方言,俚语和语言之间的通用术语。机器学习大大简化了这个过程。可以使用Facebook的fastText范例创建语言标识符。该模型使用词嵌入来理解语言,并扩展了word2vec工具。
源代码:https://github.com/axa-group/nlp.js
4.从新闻标题中提取股票情绪
过去,金融新闻通过广播、报纸和口口相传,在一段时间内缓慢传播。在互联网时代,传播只需要几秒钟。来自财报电话会议的数据流甚至可以被用来自动生成新闻文章。通过对财经新闻标题进行情绪分析,可以产生投资相关的决策信息,能够破译头条新闻背后的情绪,并通过使用这种自然语言处理技术来预测市场对股票的正面或负面影响。
源代码:https://github.com/copev313/Extract-Stock-Sentiment-From-News-Headlines/tree/main
二、四个中级NLP项目
5.使用BERT进行深度学习的情绪分析
使用PyTorch 对grin注释数据集进行分析,并从预训练的BERT Transformer中进行大规模语言学习,以构建情感分析模型。多分类是该模型的体系结构。在探索性数据分析(EDA)期间完成令牌化器和附加数据编码的加载。数据加载器使批处理更容易,然后设置Optimizer和Scheduler来管理模型训练。
为了调节PyTorch对BERT加速器的微调,创建一个训练循环以实现可测量模型的性能指标。可对预训练、微调模型的性能进行了评估。该模型达到了良好的准确性。
源代码:https://github.com/dA505819/Sentiment_Analysis_with_Deep_Learning_using_BERT/tree/master
6.NLP主题建模 LDA-NMF
在这个项目中,主题建模是使用LDA和NMF。此外,TF-IDF文章推荐引擎的开发,在于响应关键字输入,它推荐的顶部文件来自于一个基于余弦相似度的文件池。
源代码:https://github.com/AnushaMeka/NLP-Topic-Modeling-LDA-NMF/tree/master
7.语音情感分析仪
这个项目的目标是开发一个神经网络模型,用于识别我们日常谈话中的情绪。男性、女性神经网络模型能够检测多达五种不同的情绪。这可以应用于个性化营销,根据情绪推荐产品。同样,汽车制造商可以利用这一点来衡量司机的情绪,以改变速度,防止碰撞。
源代码:https://github.com/MiteshPuthran/Speech-Emotion-Analyzer
8.使用LSTM的图像字幕
图片字幕的目的是对图片的内容和背景进行简洁准确的解释。图像字幕系统的应用包括自动图片分析、内容检索,可以对视觉障碍者提供帮助。
长短期记忆(LSTM)是一种递归神经网络(RNN)架构,适用于需要对顺序输入中的长期关系进行建模的图片字幕等应用。卷积神经网络(CNN)在使用LSTM的图像字幕系统中处理输入图像,以便提取表示图像的固定长度特征向量。LSTM网络使用这个特征向量作为输入,逐字创建字幕。
源代码:https://github.com/ZhenguoChen/Neural-Network-Image-Captioning
三、四个高级NLP项目
9.科技文章关键词提取
从科学论文中提取关键短语的自然语言处理(NLP)任务包括从文本中自动查找和提取重要单词或术语。
有许多方法用于提取关键短语,包括基于规则的方法、无监督方法和监督方法。无监督方法使用统计技术来确定文档中最关键的术语,而基于规则的方法使用一组预定义的标准来选择关键短语。
源代码:https://github.com/intelligence-csd-auth-gr/keyphrase-extraction-via-summarization
10.基于元学习的文本分类
为某些NLP任务(如情感分析,文本分类等)量身定制的机器学习模型并在多个任务上训练,是使用元学习进行文本分类所必需的过程。这种方法比从头开始训练模型的性能更好,因为它使用从完成类似任务中学到的知识来快速适应新任务。通过使用来自支持集的数据调整模型的参数,目标是减少查询集上的损失。
源代码:https://github.com/phanxuanphucnd/meta-learning
11.关于Distilbert
介绍论文DistilBERT是BERT的蒸馏版本,比原始BERT更小,更快,更便宜,更轻。DistilBERT是BERT基础训练的Transformer模型,它紧凑、快速、经济实惠且轻便。与bert-base-uncased相比,它的运行速度快60%,使用的参数少40%,同时在GLUE语言理解基准测试中保持了BERT 95%以上的性能。此模型是一个基于DistilBERT的未加cased微调检查点,它是使用SQuAD v1.1上的知识蒸馏(第二步)进行细化的。
文章:https://huggingface.co/distilbert-base-uncased-distilled-squad
12.使用BERT完成掩码字
BERT是一个Transformers模型,它是在相当大的英语数据语料库上进行自我监督预训练的。这意味着,在仅对原始文本进行预训练而没有任何人工标记之后,使用自动过程来从这些文本生成输入和标签(这解释了为什么它可能使用大量可用的数据)。该模型的两个学习目标包括:“下一句”预测(NSP)和掩蔽语言建模(MLM)。假如你有一个标记句子的数据集,那么就可以使用BERT模型产生的特征作为输入进行训练。
文章:https://huggingface.co/bert-base-uncased