NLP之语言词素Morpheme(形态学)

2024-05-05 14:48

本文主要是介绍NLP之语言词素Morpheme(形态学),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Morpheme (词素),人类语言中表达语义的最小单元。

举个例子:

  • Eat 表示“吃”,不能再分了,ea 或 at 在这里都没有任何意义。所以eat是一个word,也是一个Morpheme。
  • Tomcats 表示 “雄猫”的复数, (包含三个 morphemes: tom = male, cat=animal, -s = plural)

   

Morpheme词素,可以分为两类, Free Morpheme和 Bound Morpheme。

Free Morpheme,比如前面的eat,可以独立作为一个word,可以单独使用。

Bound Morpheme,比如前面的-s,必须附加到其它的Morpheme词素,和它们一起使用。

根据各个词素在word中的不同作用和位置,可以把它们进行成分式的分类/划分。下面的图描述了对kickers一词进行成分划分。

 

 

至于Stem。一般而言,给Root加一个derivational morpheme派生词素,它就变成了Stem 比如,kickers中kick就是这个词的Root,加上派生词素-er后,则kicker变成了Stem,派生词素-er负责将kick从一个动词派生(转化)为一个名词,含义相关,但已变化。

与派生词素容易混淆的是屈折词素Inflectional Morphemes,比如我们在kicker后加词素-s,

kicker的语义没有任何变化,但是在语法中人称格数发生了变化,这样的词素就被称为屈折词素Inflectional Morphemes。与派生词素-er相比,屈折词素-s可以改变时态或人称格数,不能改变含义。

 既然Base是Bound Morpheme可以附着的主体部分。那么我们再来看看可以附着在Base上的那部分Bound Morpheme,即Affixes。

 

Affixes词缀分为前缀Prefixes和后缀Suffixes两类。

举个例子:

给你一个word,把这个word分析出Base Root Stem和Affixes等词素成分的过程叫做词分析Word Analysis。

比如:

  • hospitalize - complex word, free base hospital (root) + -ize derivational suffix
  • hospitalizes = stem [hospital (root) + -ize affix] + -s

这种分析表明,单词不是一下子形成的。需要遵循顺序来构成。为了捕捉描述单词形成的过程,语言学家开发了两种表示方法。一种方法是标记包围;另一种方法是树结构。 

标记包围:表示如下 

 再来一个更复杂的标记包围的例子

 用树结构表示是什么样子的呢?

Trees can be drawn from the top-down or from the bottom-up.

Using the top down method: start with the base word label, in this case A for adjective, then split off each major division. In this case there is just one affix, Af, and an adjective, A. Once the parts are labeled, the word parts can be filled in underneath.

把rehospitalizes用树结构表示,则会是下面这个样子:

 

这篇关于NLP之语言词素Morpheme(形态学)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961965

相关文章

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(