Press "Enter" to skip to content

探索自然语言处理 – 启动自然语言处理(第一步)

如果您是第一次接触我的“探索自然语言处理”系列,请查看我的介绍性文章这里

探索和掌握自然语言处理 —— 一次深入之旅

您好,我是Deepthi Sudharsan,一名正在攻读人工智能学士学位的大三本科生。鉴于我已经…

VoAGI.com

这学期,我学习自然语言处理作为我的课程的一部分。太棒了。因此,作为即将到来的科目评估的一部分,我正在复习所提供的材料,并做了一些笔记,今天我将分享这些笔记。希望对您有所帮助。我还要在此感谢来自印度科英布托尔Amrita Vishwa Vidhyapeetham学院CEN系的教职员工。正是在他们的指导、鼓励和支持下,我才开始了这个系列。正是他们的教诲使我追随了对自然语言处理的热爱。我特别要感谢来自印度科英布托尔Amrita Coimbatore的CEN系的Sachin Kumar S先生,他在本学期为我上了这门课程,这里使用的部分信息和图像来自他提供或创建的资源和材料。

什么是自然语言处理?

计算机与人类语言之间的相互作用的研究被称为自然语言处理。它试图使计算机能够以与人类类似的方式理解文本和语音内容。

目标:完全捕捉上下文的含义。(上下文是指从文本的含义中得出的信息)

引用:https://www.slideshare.net/YuriyGuts/natural-language-processing-nlp Slide 3
  1. 音韵学:研究人类如何产生和感知声音,或者手语中的等效方面
  2. 音韵学:研究语言或方言如何系统地组织其声音或手语中的组成部分
  3. 形态学:研究词的内部结构- 形态素是形态学的基本单位- 词是语言的最小独立单位- 简单词没有内部结构(或由一个形态素组成)。例如:work, run- 复杂词有内部结构(由一个或多个形态素组成)。例如:worker(work+er),building(build+ing)
  4. 句法学:研究词和形态素如何组合形成更大的单位,如短语和句子
  5. 语义学:研究引用、含义或真理
  6. 语用学:研究上下文如何影响含义

一些重要的术语:

  1. 令牌可以被视为单词、字符、子词等。
  2. 令牌化是将文本句子分割成令牌的过程。
  3. 语料库是文本数据的集合。
  4. 词汇表是语料库中唯一令牌的集合。
  5. 词典指的是单词及其含义。
令牌化是自然语言处理流程中的第一步。引用:https://www.slideshare.net/YuriyGuts/natural-language-processing-nlp

令牌化的类型

一个很好的参考:https://towardsdatascience.com/overview-of-nlp-tokenization-algorithms-c41a7d5ec4f9

词级标记

根据特定的分隔符将给定的句子分割成单词

“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')))

自然语言处理的一些挑战:

  1. 歧义性(具有多个解释的句子或短语。有两种类型:句法歧义 – 句子的多个解释和词汇歧义 – 单词的多个解释)
  2. 缩写(简写形式)
  3. 非语言标记
  4. 社交媒体数据(以混合代码的形式)

语言建模:

考虑上下文,预测可能出现的语言单位(单词、文本、句子、标记、符号等)。

将概率值分配给标记序列的模型被称为语言模型

最简单的语言模型是“N-gram”。它为一个句子或“n”个标记的序列分配概率。

它使用马尔可夫假设;下一个词的概率仅取决于前一个词。N-gram模型向过去的(n-1)个词查看以预测下一个词。

探索自然语言处理 - 启动自然语言处理(第一步) 四海 第4张

探索自然语言处理 - 启动自然语言处理(第一步) 四海 第5张

参考资料

自然语言处理中的标记化算法概述

介绍标记化方法,包括子词、BPE和SentencePiece

towardsdatascience.com

  1. ‘Speech & language processing’ , Daniel Jurafsky, James H Martin, preparation [cited 2020 June 1] (Available from: https://web. stanford. edu/~ jurafsky/slp3 (2018))
  2. https://www.slideshare.net/YuriyGuts/natural-language-processing-nlp
  3. ‘Foundations of Statistical Natural Language Processing’, Christopher Manning and Hinrich Schütze, MIT press, 1999
  4. ‘Natural Language Processing with Python’, Steven Bird,Ewan Klein and Edward Loper, O’Reilly Media, Inc.”, 2009.
  5. ‘Deep Learning for Natural Language Processing: Develop Deep Learning Models for your Natural Language Problems (Ebook)’, Jason Browlee, Machine Learning Mastery, 2017.
  6. ‘Speech & language processing’ , Daniel Jurafsky, James H Martin, preparation [cited 2020 June 1]
  7. https://all-about-linguistics.group.shef.ac.uk/branches-of-linguistics/morphology/what-is-morphology//
  8. http://sams.edu.eg/en/faculties/flt/academic-programs-and-courses/department-of-english-language/
  9. https://www.coursehero.com/file/127598328/Human-Comm-Ch-2-4-Notesdocx//
  10. https://slideplayer.com/slide/7728110/
  11. https://www.geeksforgeeks.org/removing-stop-words-nltk-python/
Leave a Reply

Your email address will not be published. Required fields are marked *