语义分析词格分类

命名实体识别(NER, named entity recognization)和词性归类是 NLP 技术中的关键一环。过去 NLP 领域有不少流行的开源项目专注在这个领域,如 Spacy、NLTK 等等。我们来试试 ChatGPT 在这方面的表现情况如何。我们从"四渡赤水"的百度百科词条中,复制一段文本来测试 ChatGPT 的表现:

识别这段文本中的命名实体和词性分类:毛泽东指挥中央红军三个月的时间六次穿越三条河流,转战川贵滇三省,巧妙地穿插于国民党军重兵集团围剿之间,不断创造战机,在运动中大量歼灭敌人,牢牢地掌握战场的主动权,取得了红军长征史上以少胜多,变被动为主动的光辉战例。

运行结果如下所示。令人惊讶的是,ChatGPT 可以直接识别出"红军长征"是一个事件名,而没有当做一个主谓结构的词组。谁说 ChatGPT 不太懂中文的,它真的很懂。

命名实体:

* 毛泽东:人名
* 中央红军:组织名
* 川贵滇:地名
* 国民党军:组织名
* 红军长征:事件名

词性分类:

* 毛泽东:名词,作主语
* 指挥:动词,作谓语
* 中央红军:名词,作宾语
* 三个月的时间:名词短语,作时间状语
* 六次:数词,作数量修饰语
* 穿越:动词,作谓语
* 三条:数词,作数量修饰语
* 河流:名词,作宾语
* 转战:动词,作谓语
* 川贵滇:地名,作地点状语
* 三省:数词,作数量修饰语
* 巧妙地:副词,修饰动词“穿插”
* 穿插:动词,作谓语
* 国民党军:名词,作宾语
* 重兵集团:名词,作宾语修饰语
* 围剿:动词,作宾语修饰语
* 不断:副词,修饰动词“创造”
* 创造:动词,作谓语
* 战机:名词,作宾语
* 运动中:动态词性,作时间状语
* 大量:副词,修饰动词“歼灭”
* 歼灭:动词,作谓语
* 敌人:名词,作宾语
* 牢牢地:副词,修饰动词“掌握”
* 掌握:动词,作谓语
* 战场:名词,作宾语
* 主动权:名词,作宾语
* 取得:动词,作谓语
* 红军长征史上:名词短语,作时间状语
* 以少胜多:成语,作宾语修饰语
* 变被动为主动:成语,作宾语修饰语
* 光辉:形容词,修饰名词“战例”
* 战例:名词,作宾语。

词性分类看起来有些啰嗦,不是很易懂。还是 Spacy 的格式更舒服。让 ChatGPT 直接按Spacy 格式输出试试?

用 spacy 的方式输出依存关系

ChatGPT 同时给出了 spacy 源代码,以及实际可能的输出结果,并都用代码框高亮显示出来。

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐