python实战(十二)——如何进行新词发现?

一、概念

        新词发现是NLP的一个重要任务,旨在从大量的文本数据中自动识别和提取出未在词典中出现的新词或短语,这对于信息检索、文本挖掘、机器翻译等应用具有重要意义,因为新词往往包含了最新的知识和信息。

        随着互联网的不断发展,每一年都有着大量的新兴网络热词。如果在NLP建模过程中这些热词恰好在模型词典中,那么就能较好地保留语义信息,否则这部分信息就会丢失。即便是大模型,在不了解新词的前提下也无法得到一个令人满意的响应。新词发现技术一定程度上为缓解out of vocabulary的问题提供了可行方式。

二、原理及实现

 

        这里,我们参考广为人知的《互联网时代的社会语言学:基于SNS的文本数据挖掘》中的策略来进行新词发现的讲解。

1、原理

        新词发现的原理主要基于以下几个方面:

(1)词频统计

        新词通常在文本中出现的频率较高,因此可以通过统计词频来初步筛选出可能的新词。

(2)凝固度(Cohesion)

        凝固度用于衡量一个词组内部的紧密程度,常见的方法是计算词组的互信息(Mutual Information, MI)或点互信息(Pointwise Mutual Information, PMI)。高凝固度表示词组内部的词之间关系紧密,也就表明词组内部中的字词常常共同出现,则该词组更有可能是一个新词。

        假设现在我们有一个词组eq?w%20%3D%20w_%7B1%7Dw_%7B2%7D...w_%7Bn%7D,其中eq?w_%7Bi%7D表示词组中的第 i 个字或者词,那么我们可以使用如下公式计算凝固度(示例之一,也可以使用其他常见公式):

### 知识图谱与自然语言处理实战案例 #### 使用Jiagu进行知识图谱构建和自然语言处理任务 为了更好地理解知识图谱和自然语言处理(NLP)的应用,可以考虑使用Jiagu这一强大的NLP工具来完成一系列的任务。Jiagu基于BiLSTM等模型,并经过大规模语料训练,能够提供多种NLP功能,如中文分词、词性标注、命名实体识别、情感分析、关系抽取等[^2]。 下面是一个具体的例子,展示了如何利用Jiagu来进行新词发现以及知识图谱中的关系抽取: ```python import jiagu # 新词发现示例 jiagu.findword('input.txt', 'output.txt') # 利用信息熵算法从大量文本中找出潜在的新词语 # 关系抽取示例 text = "李华是北京大学的学生" entities = jiagu.ner(text) for entity in entities: print(entity) relations = jiagu.relation_extract(text, entities) for relation in relations: print(relation) ``` 这段代码首先调用了`findword()`函数执行新词发现操作;接着对于给定的一句话进行了命名实体识别(`ner()`)得到其中涉及的人物名或地点名等重要元素;最后再通过`relation_extract()`尝试解析这些实体间可能存在的关联,比如人物与其所属机构之间的隶属关系。 这种做法不仅有助于加深对原始文档内容的理解,还可以帮助建立更加丰富的结构化数据集——即所谓的“知识图谱”,从而支持更复杂的信息检索和服务开发需求[^5]。 #### 构建知识图谱的过程概述 当涉及到创建一个完整的知识图谱项目时,则需经历几个关键阶段:首先是定义领域范围内的核心概念及其相互间的逻辑联系;其次是收集整理来自不同渠道的数据源作为输入材料;再次是对上述素材实施预处理(清洗)、特征工程等一系列准备工作以便后续加工;最终则是运用诸如Jiagu这样的专用软件包去自动化地挖掘隐藏于文字背后的价值信息并将其转化为图形化的表达形式供进一步查询分析之用[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值