如果您是第一次接触我的“探索自然语言处理”系列,请查看我的介绍性文章这里。
探索和掌握自然语言处理 —— 一次深入之旅
您好,我是Deepthi Sudharsan,一名正在攻读人工智能学士学位的大三本科生。鉴于我已经…
VoAGI.com
这学期,我学习自然语言处理作为我的课程的一部分。太棒了。因此,作为即将到来的科目评估的一部分,我正在复习所提供的材料,并做了一些笔记,今天我将分享这些笔记。希望对您有所帮助。我还要在此感谢来自印度科英布托尔Amrita Vishwa Vidhyapeetham学院CEN系的教职员工。正是在他们的指导、鼓励和支持下,我才开始了这个系列。正是他们的教诲使我追随了对自然语言处理的热爱。我特别要感谢来自印度科英布托尔Amrita Coimbatore的CEN系的Sachin Kumar S先生,他在本学期为我上了这门课程,这里使用的部分信息和图像来自他提供或创建的资源和材料。
什么是自然语言处理?
计算机与人类语言之间的相互作用的研究被称为自然语言处理。它试图使计算机能够以与人类类似的方式理解文本和语音内容。
目标:完全捕捉上下文的含义。(上下文是指从文本的含义中得出的信息)
- 音韵学:研究人类如何产生和感知声音,或者手语中的等效方面
- 音韵学:研究语言或方言如何系统地组织其声音或手语中的组成部分
- 形态学:研究词的内部结构- 形态素是形态学的基本单位- 词是语言的最小独立单位- 简单词没有内部结构(或由一个形态素组成)。例如:work, run- 复杂词有内部结构(由一个或多个形态素组成)。例如:worker(work+er),building(build+ing)
- 句法学:研究词和形态素如何组合形成更大的单位,如短语和句子
- 语义学:研究引用、含义或真理
- 语用学:研究上下文如何影响含义
一些重要的术语:
- 令牌可以被视为单词、字符、子词等。
- 令牌化是将文本句子分割成令牌的过程。
- 语料库是文本数据的集合。
- 词汇表是语料库中唯一令牌的集合。
- 词典指的是单词及其含义。
令牌化的类型
词级标记
根据特定的分隔符将给定的句子分割成单词
“She is smarter” 变成 “she”, “is”, “smarter”。这里的分隔符是空格。
缺点:
当存在“词汇外(OOV)”的词时。 (一种解决方案是用未知标记(UNK)替换罕见的词。在这种情况下,词汇表只包含出现频率最高的前k个词,但是新单词的信息将丢失)
创建的词汇表大小将会很大,导致内存和性能问题(一种解决方案是切换到字符级别的标记化)
基于空格和标点符号分割句子时,处理被视为单个标记但由空格或标点符号分隔的单词(例如 don’t, New York 等)存在问题。
字符级标记化:
将给定的句子分割为字符序列。
“Smarter” 变成 “s”, “m”, “a”, “r”, “t”, “e”, “r”。
优点:
较小的词汇表大小(26个字母+特殊字符等)可以处理拼写错误
子词标记化:
将单词分割成较小的部分。
“Smarter” 变成 “Smart”, “er”
停用词:
停用词是文本中常用的词,如“the”,“in”,“where”等。
import nltkfrom nltk.corpus import stopwords #Pythonprint(set(stopwords.words('english')))
自然语言处理的一些挑战:
- 歧义性(具有多个解释的句子或短语。有两种类型:句法歧义 – 句子的多个解释和词汇歧义 – 单词的多个解释)
- 缩写(简写形式)
- 非语言标记
- 社交媒体数据(以混合代码的形式)
语言建模:
考虑上下文,预测可能出现的语言单位(单词、文本、句子、标记、符号等)。
将概率值分配给标记序列的模型被称为语言模型
最简单的语言模型是“N-gram”。它为一个句子或“n”个标记的序列分配概率。
它使用马尔可夫假设;下一个词的概率仅取决于前一个词。N-gram模型向过去的(n-1)个词查看以预测下一个词。
参考资料
自然语言处理中的标记化算法概述
介绍标记化方法,包括子词、BPE和SentencePiece
towardsdatascience.com
- ‘Speech & language processing’ , Daniel Jurafsky, James H Martin, preparation [cited 2020 June 1] (Available from: https://web. stanford. edu/~ jurafsky/slp3 (2018))
- https://www.slideshare.net/YuriyGuts/natural-language-processing-nlp
- ‘Foundations of Statistical Natural Language Processing’, Christopher Manning and Hinrich Schütze, MIT press, 1999
- ‘Natural Language Processing with Python’, Steven Bird,Ewan Klein and Edward Loper, O’Reilly Media, Inc.”, 2009.
- ‘Deep Learning for Natural Language Processing: Develop Deep Learning Models for your Natural Language Problems (Ebook)’, Jason Browlee, Machine Learning Mastery, 2017.
- ‘Speech & language processing’ , Daniel Jurafsky, James H Martin, preparation [cited 2020 June 1]
- https://all-about-linguistics.group.shef.ac.uk/branches-of-linguistics/morphology/what-is-morphology//
- http://sams.edu.eg/en/faculties/flt/academic-programs-and-courses/department-of-english-language/
- https://www.coursehero.com/file/127598328/Human-Comm-Ch-2-4-Notesdocx//
- https://slideplayer.com/slide/7728110/
- https://www.geeksforgeeks.org/removing-stop-words-nltk-python/