`

HanLP-地名识别调试方法

 
阅读更多

 

 

HanLP收词特别是实体比较多,因此特别容易造成误识别。下边举几个地名误识别的例子,需要指出的是,后边的机构名识别也以地名识别为基础,因此,如果地名识别不准确,也会导致机构名识别不准确。

 

类型1 数字+地名

[1] 暗访哈尔滨网约车:下10单来7辆“黑车” 1辆套牌

[2] 房天下每日成交512日海宁商品房销售备案43

<!--[if !supportLists]-->[3] <!--[endif]-->广西近视手术专家-黄明汉院长99日百色见面会

 

类型2 前词+地名首词成词或地名尾词+后词成词

[1] 西安国企4000元工资相当于私企多少钱?

[2] 七月份从包头到山东,十五天左右,有自驾游路线推荐吗?

[3] 最受考研人欢迎的城市,有你报考高校所在的城市吗?

 

类型3 地名本身成词

[1] 滴滴司机接跨省天价订单 乘客半路改道至今未付款

[2] 上联:山水不曾随我老,如何对下联?

[3] 上联:柳着金妆闲钓水,如何对下联?

 

Badcase分析及修正

下边介绍一下排查误判原因以及修正的方法

首先需要明确以下几点注意事项

1.实体识别受分词精度影响。

2.实体识别同样涉及消歧的问题。

3.HanLP收录了一些不常见的实体词,会造成错误率升高。

4.HanLP基于隐马的命名实体识召回率没有特别要求的话,不需要再去训练。

这里我们以下边这个badcase的分析过程为例来说明

[5] 上联:山水不曾随我老,如何对下联?

打开提示模式 HanLP.Config.enableDebug()

 

运行人名识别代码

 

# HanLP命名实体识别

def hanlp_ner(text, ner_type):

    global segment

    ner_li = []

    for term in segment.seg(text):

        if str(term.nature) == ner_type:

            ner_li.append(str(term.word))

    return ner_li

这里ner_type为你要识别的实体类型,如果是人名则ner_type='nr',地名ner_type='ns',机构名ner_type='nt'text为要抽取实体的文本。

 

识别结果,这里为了清晰,只截取了部分输出。

 

粗分结果[上联/n, /w, 山水/n, /d, 曾随/ns, /rr, /a, /w, 如何/ryv, /p, 下联/n, /w]

地名角色观察:[  S 1163565 ][上联 Z 20211628 ][A 2701 B 439 X 11 ][山水 B 6 A 1 ][B 214 A 3 C 3 ][曾随 G 1 H 1 ]

[A 47 B 26 ][C 274 A 75 B 66 D 2 X 2 ][A 40525 B 10497 X 418 ][如何 B 44 ][A 2896 B 454 X 215 ][下联 Z 20211628 ][B 82 ][  B 1322 ]

地名角色标注:[ /S ,上联/Z ,/B ,山水/A ,/C ,曾随/H ,/B ,/B ,/A ,如何/B ,/A ,下联/Z ,/B , /S]

识别出地名:不曾随 CH

hanlp_ns ['不曾随']

 

显然,曾随被认为是地名了,而且粗分结果表示的是未经地名识别模块分词和词性标注的结果,显然这是由于词表导致的。由于没有经过地名识别模块,所以不需要去地名的发射词表ns.txt中去找词语,只需要看核心词表CoreNatureDictionary.txt中去找

 



 

 

显然,在核心词表中“曾随“被标记为一个地名,把”曾随“从词表中删除掉,并删除词表文件CoreNatureDictionary.txt.bin,之后再次运行程序得到下边的输出结果

 

hanlp_ns []

从这个实例,我们也可以看出一些不常见地名如果做成地名词表,就有导致错误识别实体。因此,我们应该保留一份评测语料,每当修改了实体词表后,需要跑一下测试语料查看准确率,如果降低的太多,则表示这样加进来是不可行的。同时填加的实体名也有可能会造成分词错误。

 

下边说明一下HanLP中有关实体的词表文件名

1.CoreNatureDictionary.mini.txt

2.CoreNatureDictionary.txt

3.CustomDictionary.txt

4.机构名词典.txt

5.全国地名大全.txt

6.人名词典.txt

7.上海地名.txt

8.现代汉语补充词库.txt

9.ns.txt

10.nr.txt

11.nt.txt

 

当然这里列出的是通常最有可能导致误识别的词表,如果这些词表都没有找到,还需要在HanLP其他词典文件中寻找。

希望今天的内容对使用HanLP并对隐马情有独钟的小伙伴有帮助。这两天的一点小体会是,实体识别其实跟分词是密不可分的,两者都有共同的处理难点,比如词义消歧(边界的确定),词法分析其实才是真正的NLP的内容之一,而词法分析跟机器学习其实没有太大关系。上边的badcase解决方法不是根本方法,直接去除掉某些词,会导致一些生僻实体识别不出来。我们是否可以考虑左右信息熵之类的测度函数来解决这种词是否需要拆开与其前后构成词。针对词法分析推荐大家使用深度学习的方法,毕竟了解这些方法也是必须的,虽然你可以在实际种不用,但是不代表你可以偷懒而不去学习。

  • 大小: 42.4 KB
分享到:
评论

相关推荐

    HanLP-data.zip

    3. **命名实体识别**:HanLP可以识别文本中的专有名词,如人名、地名、机构名等。训练数据会包含实体及其类型,帮助模型学习识别这些特定实体的能力。 4. **依存句法分析**:HanLP通过构建词语间的依存关系来解析...

    Hanlp最新版本V1.7.2(含hanlp-1.7.2.jar、模型data包、配置文件hanlp.properties)

    在命名实体识别方面,HanLP支持人名、地名、机构名等多种实体类型,这对于信息抽取和知识图谱构建非常重要。 其次,`data-for-1.7.2.zip`包含的是模型数据,这是HanLP进行高效准确处理的前提。这些模型通常经过大...

    elasticsearch-analysis-hanlp-7x.zip

    elasticsearch是使用比较广泛的分布式搜索引擎,es提供了一个的单字分词工具,还有一个分词插件ik使用比较广泛,hanlp是一个自然语言处理包,能更好的根据上下文的语义,人名,地名,组织机构名等来切分词

    hanlp-1.7.3-release.zip

    7. **命名实体识别(NER)**:HanLP可以识别文本中的专有名词,如人名、地名、机构名等,这对于信息抽取、情感分析等任务至关重要。 8. **依存句法分析**:该功能帮助确定句子中词与词之间的关系,构建句法树,有助...

    Hanlp分词实现从网络片段中提取省份和城市

    HanLP是由科大讯飞开发的一款高性能的自然语言处理工具包,它提供了丰富的中文分词、词性标注、命名实体识别等功能。 首先,我们需要理解如何使用HanLP进行分词。HanLP的核心是基于统计的分词模型,它能够将输入的...

    HanLP-1.7.5.zip

    3. **命名实体识别**:HanLP可以识别文本中的专有名词,如人名、地名、机构名等,这在信息抽取、问答系统和搜索引擎优化等领域有着广泛的应用。 4. **情感分析**:通过对文本的情感色彩分析,HanLP可以判断用户的...

    HanLP-doc-zh.zip

    3. **命名实体识别**:识别文本中的专有名词,如人名、地名、机构名等,为信息抽取和知识图谱构建提供基础。 4. **依存句法分析**:分析句子中词语之间的语法关系,形成句法树,有助于理解句子的深层结构。 5. **...

    hanlp-1.8.2-release.zip

    3. 命名实体识别:HanLP可以识别出文本中的专有名词,如人名、地名、机构名等,对于信息抽取和知识图谱构建有重要作用。 4. 句法分析:HanLP的依存句法分析功能可解析出句子的结构关系,便于理解句子的深层含义。 ...

    hanlp-1.7.4-release.zip

    2. 命名实体识别(NER):HanLP可以识别出文本中的人名、地名、机构名等特定实体,这对于信息抽取和知识图谱构建非常重要。 3. 依存句法分析:通过对句子进行结构解析,HanLP可以建立词语间的依存关系,帮助理解...

    HanLP-1.8.0.zip

    3. 命名实体识别:HanLP可以识别文本中的专有名词,如人名、地名、组织名等,对于新闻报道、社交媒体分析等场景尤为重要。例如,“阿里巴巴(组织名)达摩院(组织名)”。 4. 句法分析:HanLP可以进行依存句法分析...

    elasticsearch-analysis-hanlp-8.15.0

    作者自己打包的hanlp插件,用于中文分词,可实现中文人名、地名、机构名识别。es的版本为8.15.0

    hanlp1.8.3jar包下载

    hanlp,hankcs,支持中文分词(N-最短路分词、CRF分词、索引分词、用户自定义词调、词性标注),命名实体识别(中国人民、音译人民、日本人民,地名,实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,...

    hanlp-python_spiderpbl_ch11/11.5.py_自然语言处理入门_

    3. **命名实体识别**:识别文本中的人名、地名、机构名等具有特定含义的实体。`pyhanlp`支持这一功能,可以识别多种类型的命名实体。 4. **依存句法分析**:分析句子中词汇之间的依赖关系,帮助理解句子结构。`...

    analysis-hanlp-7x.zip

    elasticsearch是使用比较广泛的分布式搜索引擎,es提供了一个的单字分词工具,还有一个分词插件ik使用比较广泛,hanlp是一个自然语言处理包,能更好的根据上下文的语义,人名,地名,组织机构名等来切分词

    典型相关分析matlab实现代码-HanLP-1.5.4:汉LP-1.5.4

    地名识别 实体机构名识别 关键词提取TextRank关键词提取 自动摘要TextRank自动摘要 短语提取基于互信息和左右信息熵的短语提取 拼音转换 多音字 声母 韵母 声调 简繁转换 繁体中文分词 简繁分歧词(简体、繁体、台湾...

    典型相关分析matlab实现代码-HanLP-1.2.4-Taikor:HanLp-1.2.4Tyk叉

    地名识别 实体机构名识别 关键词提取 TextRank关键词提取 自动摘要 TextRank自动摘要 短语提取 基于互信息和左右信息熵的短语提取 拼音转换 多音字 声母 韵母 声调 简繁转换 繁体中文分词 简繁分歧词 文本推荐 语义...

    elasticsearch的hanlp中文插件

    3. **命名实体识别**:能够识别人名、地名、机构名等专有名词,增强信息检索的准确性。 4. **其他NLP任务**:包括依存句法分析、短语结构句法分析、关键词抽取等,满足复杂场景需求。 **自定义开发** 如果默认的...

    地名识别程序 地名识别程序 地名识别程序

    地名识别技术主要基于机器学习和深度学习模型,常见的方法包括传统的基于规则的方法、统计模型(如隐马尔科夫模型HMM、条件随机场CRF)以及现代的深度神经网络模型(如LSTM、BERT)。这些模型通过学习大量的标注数据...

    HanLP-1.5.3.tar

    - **命名实体识别**:识别文本中的专有名词,如人名、地名、机构名等。 - **依存句法分析**:构建句子的依存树结构,揭示句子成分之间的关系。 - **短语提取**:找出文本中的关键短语,适用于信息抽取和文本摘要...

    matlab信息熵代码-HanLP-master:一个人工智能的框架

    地名识别 实体机构名识别 关键词提取 TextRank关键词提取 自动摘要 TextRank自动摘要 短语提取 基于互信息和左右信息熵的短语提取 拼音转换 多音字 声母 韵母 声调 简繁转换 繁体中文分词 简繁分歧词(简体、繁体、...

Global site tag (gtag.js) - Google Analytics