前言第一章基本都是NLP的概念和发展介绍了吧...重复的内容不谈说一下补充和相关的思考。1 语言处理“自然语言处理”根据百度百科定义[1]自然语言处理( Natural Language Processing, NLP)旨在使机器理解、解释并生成人类语言实现人机之间有效沟通使计算机能够执行语言翻译、情感分析、文本摘要等任务。从中拆解“自然语言”是形式交互对象的“人”与“计算机”目的在于“沟通”。所以成为了语言学、计算机、人工智能、图书情报等等学科的交叉领域。进一步思考一下我们想让计算机输出“hello word”那么我们先在py文件中写print(hello word)然后使用python运行计算机就能够输出“hello word”。这其实是使用代码以及配套软件的形式让计算机“理解”了“输出hello word”的意图。一般而言代码编程语言与“自然语言”是属于两类高级编程语言会出于易读性、方便使用性等目的去接近自然语言的形式而自然语言最大的问题就是不确定性与模糊性了。当然这种编程的方法必然不属于、也不应该属于“自然语言处理”但大抵是可以同归属于“语言处理”。。。那么语言的定义是什么呢似乎没有过于明确的定义很多都是“描述性的而非规定性的 语言学家的定义旨在科学地描述人类语言的本质特征而不是规定语言“应该”是什么样子”参考《语言学纲要》相关内容[2]这本书写的挺有意思与考研材料[3]“语言”的定义似乎可以是语言是一种特殊的社会现象是人类作为必不可少的思维工具和最重要的交际工具来使用的一种音义结合的符号系统。语言是由语音、词汇、语法构成的体系。大概可以认为“语言”具有文本和声音两种形式在后续以“文本”形式为主要说明。有一段难以查明出处的话对编程语言文中称为“算法语言”与自然语言进行了论述人类思维职能的延伸使机器能代替人的一部分脑力劳动出现了人直接命令机器进行操作的前景。这将给语言研究带来重大的影响。要给机器下命令必须使机器“懂得一种语言。但机器远不能理解自然语言因而创造了使它能够识别的、高度形式化的算法语言。初期的算法语言比较烦琐跟自然语言的距离很大人们要掌握它相当费事。近年来经过人们的不断改进算法语言有逐步向自然语言靠拢的趋势出现很多方案大大方便了操作计算机的人员的学习和使用同时也提高了机器的效能。不过自然语言太复杂人们没有办法让机器全部接受。如果我们把自然语言分析得很透彻连机器也能识别那么人和机器就能直接对话不必经过算法语言的中介了。所以照猫画虎地“语言处理”可以近似定义语言处理( Language Processing, LP)旨在使机器理解、解释并生成语言实现人机之间有效沟通使计算机能够执行以语言为载体的人类所意图的任务。可以看出“语言”是承载了“意图”的承担了“交际”与“思维”的工具属性。无非就是“编程语言”会追求精确性“自然语言”会贴近口语化就是一些俚语、方言、小语种、歧义、指代等等。。“自然语言处理”的处理对象往往也是自然语言任务也是与自然语言相关的。而“编程语言”的处理对象姑且算是底层的01机器语言..任务则依旧将其限定在“以语言为载体”的基础上。但是语言的“交际”与“思维”属性大大拓展了“任务”的范围。“指令”一种结构化很强的语言可能是编程语言、也可能是自然语言比如shutdown -p它生成后被执行会带来什么结果电脑立刻关机。因为其能够传递“意图”从而达成控制的目的由此产生的影响即“任务范围”、“能干的事情”就很多了比如让屏幕打印特定字符、进行运算、甚至通过控制声光电......但应该是可以用“人类所意图的任务”来概括。这也是为什么其与“人工智能”密切相关了。因此当以“自然语言”为形式的“大语言模型”快速发展最先落地的除了一开始的对话、问答就是代码生成了。。而文本训练中除了人类书籍等自然语言不管是出于就近原则训练LLM的是互联网公司代码资源多、便利性网络原生的高质量文本代码占比客观、目的性就是为了提高编程能力还是什么原因也往往会添加大量的程序代码即编程语言。所以使得真的是“大语言模型”而不单纯的“大自然语言模型”在编程方面具有较为天然的优势。进一步地基于大语言模型的智能体也是以语言文本的形式前文所说的“指令”进行了工具使用。分词、词性标注、关系抽取、机器翻译、文本摘要等等确实都是传统NLP领域的研究热点spaCy、HanLP、nltk等开源包的功能很全面了。但是由于“大语言模型”太火很多都直接“碾压式”代替掉了比如使用提示词“请对下面的文本进行XXX任务要求是YYY”。。nltk库我个人有用到一些分词好像是BERT、文本评估BLEU分数等还由于历史发展原因存在依赖关系。反正就是从原本比较小众的语言信息学的领域再到被计算机、人工智能领域广泛使用。。杂念1有人问过为什么平时用的大模型写硬件代码不好个人感觉大概是因为没有相关训练文本互联网公司从互联网上找的互联网文本加上泛化性有限。杂念2大语言模型与代码模型大编程语言模型天然地接近因此在Web开发等写代码领域落地迅速同时由于“语言”承载“意图”因此被认为接近AGI通用人工智能。。但是看过一个观点“大语言模型在模态上与写代码相通通但是与现实世界有缺失确实不足以实现世界模型、AGI。。”换句话就是思维离不开语言但是不等于语言扯远了关我啥事......2 文本数字化表示核心就是转化为数字把“语言”文本转化为一串数字才能在计算机里做运算。根据项目所言[4]总结了一下发展历程、形态变化大概就是1、人为定义的特征根据句子中的词频等特征如向量空间模型Vector Space Model, VSM2、条件概率统计得到根据⼀个词前⾯的N-1个词计算当前词的出现概率如N-gram模型。马尔可夫Andrey Markov在 1906 年提出最初用于分析普希金长诗《叶甫盖尼·奥涅金》中字母的转移概率是用统计方法研究自然语言的最早尝试。1948 年克劳德·香农Claude Shannon在《通信的数学理论》中将马尔可夫过程系统性地引入自然语言建模明确提出了用前文预测下一个符号的概率思想。1975 年Jelinek 等人在论文 《Continuous Speech Recognition by Statistical Methods》中首次将 N-gram 语言模型应用于语音识别任务投入实际使用。3、神经网络词嵌入Embedding(嵌入)是指把文本(也可能包括图像、视频等其他模态数据)转成能表达语义信息的浮点数向量[5]。使用神经网络学习文本的低维稠密分布式表示比如规定用512维向量来表示神经网络自己学习得到每一维度干什么、总体是干什么目标是让向量空间的几何距离对应语义关联程度。2001年Yoshua Bengio 等人发表了论文《A Neural Probabilistic Language Model》首次提出用神经网络前馈神经网络来构建语言模型。1静态词嵌入基于局部窗口的上下文共现关系训练生成全局唯一的静态词向量如Word2Vec2动态上下文嵌入根据词汇所处的具体语境生成差异化的词向量用于解决一词多义问题比如“train”作为名词“火车”与作为动词“训练”“苹果”是水果还是科技公司其中所代表的东西差异还是比较大了。。感觉更指向了其本质所代表的事物一对多而不是在字面一对一ELMo、Bert应该都属于此类不过神经网络架构不同前者是双向LSTM结构、后者是Transformer自注意力机制。杂念1把文本转化为图知识图谱也算是与数字化或者说向量化并列的表示方法吧...可以通过谓词逻辑进行符号推断虽然目前实际用的时候大多也是进行了向量化表示比如实体关系标注识别、嵌入推理等等。。杂念2底层还是在概率统计但非线性变换映射多了从效果来看就成了“自发涌现出的高阶抽象得到的语义表示”[1]自然语言处理语言处理方式_百度百科[2]叶蜚声、徐通锵著王洪君、李娟修订《语言学纲要》修订版北京大学出版社2010.[3]187个《语言学纲要》名词解释整理(一)[4]https://github.com/datawhalechina/happy-llm[5]【科普】大家一直说的Embedding嵌入是什么一文看懂!-CSDN博客