4

【NLP】任务和工具

 1 year ago
source link: https://www.guofei.site/2022/12/17/nlp.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【NLP】任务和工具

2022年12月17日    Author:Guofei

文章归类: 0x24_NLP    文章编号: 311


版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2022/12/17/nlp.html

Edit

常见 NLP 任务

1、token-level task:token级别的任务. 如完形填空(Cloze), 预测句子中某个位置的单词; 或者实体识别; 或是词性标注; SQuAD等.

  • 1.1 Cloze task :BERT模型预训练的两个任务之一, 完形填空任务。给出句子中其他的上下文token, 推测出当前位置应当是什么token. BERT在预训练时使用 masked language model, 即在与训练时, 将句子中的部分token用【masked】这个特殊的token进行替换,然后目标就是预测[masked]对应位置的单词.
  • 1.2. SQuAD(Standford Question Answering Dataset) task:这是一个生成式的任务. 样本为语句对. 给出一个问题, 和一段来自于Wikipedia的文本, 其中这段文本之中, 包含这个问题的答案, 返回一短语句作为答案. 因为给出答案, 这是一个生成式的问题, 这个问题的特殊性在于最终的答案包含在语句对的文本内容之中, 是有范围的, 而且是连续分布在内容之中的.因此, 我们找出答案在文本语句的开始和结尾处, 就能找到最后的答案. 通过对文本语句序列中每个token对应的所有hidden vector做softmax判断是开始的概率和是结束的概率, 最大化这个概率就能进行训练, 并得到输出的结果.
  • 1.3 Named Entity Recognition(NER)对每个token打标签, 判断每个token的类别.
    • SpaCy:基于Python的NER系统
    • Stanford NER:基于JAVA的NER系统

2、sequence-level (Segment-level) task:序列级别的任务(也叫做句子级别的任务). 如情感分类等各种句子分类问题; 推断两个句子的是否是同义等.

  • 2.1 NLI(Natural Language Inference) task:自然语言推断任务, 即给出一对(a pair of)句子, 判断两个句子是entailment(相近), contradiction(矛盾)还是neutral(中立)的. 由于也是分类问题, 也被称为sentence pair classification tasks.
    • 在智能问答, 智能客服, 多轮对话中有应用.
    • 常用的数据集有:
    • MNLI(Multi-Genre Natural Language Inference): 是GLUE Datasets(General Language Understanding Evaluation)中的一个数据集. 是一个大规模的来源众多的数据集, 目的就是推断两个句子是意思相近, 矛盾, 还是无关的.
    • WNLI(Winograd NLI)
  • 2.2. Sentence Pair Classification tasks. 两个句子相关性的分类问题, NLI task是其中的特殊情况. 经典的此类问题和对应的数据集有:
    • QQP(Quora Question Pairs): 这是一个二分类数据集. 目的是判断两个来自于Quora的问题句子在语义上是否是等价的.
    • QNLI(Question Natural Language Inference): 也是一个二分类问题, 两个句子是一个(question, answer)对. 正样本为answer是对应question的答案, 负样本则相反.
    • STS-B(Semantic Textual Similarity Benchmark): 这是一个类似回归的问题. 给出一对句子, 使用1~5的评分评价两者在语义上的相似程度.
    • MRPC(Microsoft Research Paraphrase Corpus): 句子对来源于对同一条新闻的评论. 判断这一对句子在语义上是否相同.
    • RTE(Recognizing Textual Entailment): 是一个二分类问题, 类似于MNLI, 但是数据量少很多.
  • 2.3. Single Sentence Classification tasks
    • SST-2(Stanford Sentiment Treebank): 单句的二分类问题, 句子的来源于人们对一部电影的评价, 判断这个句子的情感.
    • CoLA(Corpus of Linguistic Acceptability): 单句的二分类问题, 判断一个英文句子在语法上是不是可接受的.
  • 2.4. SWAG(Situations With Adversarial Generations) 给出一个陈述句子和4个备选句子, 判断前者与后者中的哪一个最有逻辑的连续性, 相当于阅读理解问题.

常用 NLP 工具

spaCy

https://github.com/explosion/spaCy

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("This is a sentence.")
print([(w.text, w.pos_) for w in doc])


nlp = spacy.load("zh_core_web_sm")
doc = nlp("我叫郭飞,是一名算法工程师。")
print([(w.text, w.pos_) for w in doc])
# [('我', 'PRON'), ('叫', 'VERB'), ('郭飞', 'PROPN'), (',', 'PUNCT'), ('是', 'VERB'), ('一', 'NUM'), ('名', 'NUM'), ('算法', 'NOUN'), ('工程师', 'NOUN'), ('。', 'PUNCT')]

中文分词工具 jieba

中文转拼音工具 Pypinyin

# pip install pypinyin

from pypinyin import lazy_pinyin, Style

lazy_pinyin('我叫郭飞,是一名算法工程师', style=Style.TONE3)
# ['wo3', 'jiao4', 'guo1', 'fei1', ',', 'shi4', 'yi1', 'ming2', 'suan4', 'fa3', 'gong1', 'cheng2', 'shi1']

您的支持将鼓励我继续创作!

qr.jpeg

Recommend

  • 72

    八周一次课10.23 linux任务计划cron10.24 chkconfig工具10.25 systemd管理服务10.26 unit介绍10.27 target介绍10.23 linux任务计划cron10.24 chkconfig工具显示chkconfig服务系统启动服务在inittab10.25 systemd管理服务10.26 unit介绍10.27 target介绍

  • 67
    • www.10tiao.com 6 years ago
    • Cache

    干货 | NLP 研究灵感库

    本文为雷锋字幕组编译的研究博客,原标题 Requests for research。 AI科技评论按:本文为雷锋字幕组编译的研究博客,原标题 Requests for research ,作者 NLP PH...

  • 77
    • www.tuicool.com 6 years ago
    • Cache

    NLP's ImageNet moment has arrived

    Big changes are underway in the world of Natural Language Processing (NLP). The long reign of word vectors as NLP’s core representation technique has seen an exciting new line of challengers emerge:

  • 86
    • Github github.com 5 years ago
    • Cache

    funNLP:中文 NLP 词库

    最近需要从文本中抽取结构化信息,用到了很多github上的包,遂整理了一下,后续会不断更新。 很多包非常有趣,值得收藏,满足大家的收集癖! 如果觉得有用,请分享并star,谢谢! 涉及内容包括: 中英文敏感...

  • 36
    • www.leiphone.com 5 years ago
    • Cache

    深度学习的NLP工具

    本文为 AI 研习社编译的技术博客,原标题 : NLP tools of DL 作者 |   Thomas Delteil

  • 14

    作者:dickzhu、raccoonliu、beiping 导语 NLP 任务(序列标注、分类、句子关系判断、生成式)训练时,通常使用机器学习框架 Pytorch 或 Tensorflow,在其之上定义模型以及自定义模型的数据预处理,这种方...

  • 8

    轻量的定时任务工具 Cronicle:前篇2021年12月05日

  • 3

    从 Turborepo 看 Monorepo 工具的任务编排能力本文大部分图片来自互联网

  • 7
    • 微信 mp.weixin.qq.com 2 years ago
    • Cache

    NLP任务上线前评测

    NLP任务上线前评测无论我们做什么模型也好策略也好,最终是需要...

  • 2
    • antkillerfarm.github.io 2 years ago
    • Cache

    Kettle, 任务调度工具, Solr, Petuum

    Kettle ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。这个过程有时又被叫做“数据清洗”。 Kettle是一款国外开源的ETL工具。其官网为: htt...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK