小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
What is NLP?
NLP = NLU + NLG
- NLU:语音/文本 ->意思(meaning)
- NLG:意思 -> 文本/语音
自然语言处理的挑战
Multiple Ways to Express (多种表达⽅式)
Ambiguity(⼀词多义)
自然语言处理主要应用场景
Question Answering(问答系统)
Sentiment Analysis(情感分析)
Machine Translation(机器翻译)
Text Summarization(自动摘要)
Chatbot (聊天机器⼈)
Information Extraction(信息抽取)
主要关键技术
⾃然语⾔处理技术四个维度
- Morphology(单词)
- Syntax(句⼦结构)
- Semantic(语义)
- ⾃然语⾔处理技术四个维度 Phonetics(声⾳)
Word Segmentation(分词)
Part-of-Speech (词性)
Named Entity Recognition(命名实体识别)
Parsing (句法分析)
Dependency Parsing (依存分析)
Relation Extraction(关系抽取)
分词技术
前向最大匹配
首先定义MAX_LENGTH的大小(一般为词典中最长的单词的长度),之后将待分词子串从前往后扫描取出MAX_LENGTH的长度,然后在词典中进行匹配,尽可能地选择与词典中最长单词匹配的词作为目标分词,然后进行下一次匹配。
后向最大匹配
首先定义MAX_LENGTH的大小(一般为词典中最长的单词的长度),之后将待分词子串从后往前扫描取出MAX_LENGTH的长度,然后在词典中进行匹配,尽可能地选择与词典中最长单词匹配的词作为目标分词,然后进行下一次匹配。
基于图的Viterbi算法
维特比算法就是求所有观测序列中的最优。
分词工具
- Jieba分词 github.com/fxsjy/jieba
- SnowNLP github.com/isnowfy/sno…
- LTP www.ltp-cloud.com/
- HanNLP github.com/hankcs/HanL…