python如何识别中文生僻字

这篇文章主要介绍了python如何识别中文生僻字,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

问题点

本来考虑用正则来判断中文,因为网上发现正则的匹配中文是[\u4e00-\u9fa5]。接着代码都快写完了,发现有些生僻字不再在这个范围内。

识别方法

在utf-8字符编码下,一个中文字符占3个字节,但字符的长度只有1。

1、分析中文的方法是否可以灵活为lenbytesstr,'utf-8)==3 and lenstring)==1。

2、文本写作判断中文后,如果是汉字str.ljust5),否则为str.ljust6)因为一个汉字占两个字符的长度)。

实例

from pypinyin import pinyin
import re
 
 
class ChangePinyin:
    def __init__self, filename):
        self.file = filename
        self.lyric = self.read_file)
        self.pinyin = []
 
    def read_fileself):
        with openself.file, encoding='utf-8') as f:
            return f.readlines)
 
    def write_fileself):
        with open'New_%s' % self.file, 'w', encoding='utf-8') as f:
            printself.lyric)
            for line in self.lyric:
                # printline)
                if line.strip) == '':
                    continue
                _new_line = re.subr'\s', '', line)
                # 行内容转拼音
                _pinyin = ''.joinmaplambda x: x[0].ljust6), pinyin_new_line)))
                # 根据中英文,将行内容进行字符与汉字的拆分
                _lyric = self.split_words_new_line)
                f.write'%s\n%s\n' % _pinyin, _lyric))
 
    @staticmethod
    def split_wordswords):
        word_list = ""
        tmp = ""
        for string in words:
            if lenbytesstring, 'utf-8')) == 3 and lenstring) == 1:
                if tmp != '':
                    word_list += tmp.ljust6)
                    tmp = ""
                word_list += string.ljust5)
            else:
                tmp += string
        return word_list
 
 
if __name__ == '__main__':
    Main = ChangePinyin'lyric.txt')
    Main.write_file)

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注