基于规则的音译人名识别--代码失效

第8章,247页,运行课程代码,并没有和课本一样,让卡利斯勒合并成一个词。

sentence = [“我知道卡利斯勒出生于英格兰”]
segment = HanLP.newSegment().enableTranslatedNameRecognize(True)
for sentence in sentences:
term_list = segment.seg(sentence)
print(‘分词’, HanLP.segment(sentence))
print(‘基于规则的音译人名识别’, term_list)
分词 [我/rr, 知道/v, 卡利斯/nrf, 勒/v, 出生于/v, 英格兰/nsf]
基于规则的音译人名识别 [我/rr, 知道/v, 卡利斯/nrf, 勒/v, 出生于/v, 英格兰/nsf]

感谢指出,书籍配套版本为1.7.5,后续对算法做了微调,有些case不一致,但总体准确率提高了。

另外,写书的目的是授人以渔,读书的目的是学以致用。按照第三章传授的知识,只需要往二元文法里加一条记录即可:

非常感谢您的回复。 像这个基于规则的音译人名识别,逻辑是粗分词性标注,检测到nrf就往后扫描,遇到音译人就合并。有这个过程的python的源码吗,还是我们都是用java编写,Python只是调用了一句代码而已,java关于这个规则的源码,可以发我下链接吗,谢谢您~

只有Java源码,请参考:

您好,在Python中看到,这样的JClass所调用的路径,有中文对照说明,说明下它是干什么用的?

EasyDictionary = JClass(‘com.hankcs.hanlp.corpus.dictionary.EasyDictionary’)

NRDictionaryMaker = JClass(‘com.hankcs.hanlp.corpus.dictionary.NRDictionaryMaker’)

Sentence = JClass(‘com.hankcs.hanlp.corpus.document.sentence.Sentence’)

老师您好,这行路径在哪里呀,我没有找到。是Python下载后的路径还是哪里呢?

com.hankcs.hanlp.corpus.dictionary.NRDictionaryMaker#roleTag

请仔细阅读第三页前言。