Pypinyin trăn
Tôi đã thấy một phần giới thiệu về mô hình Marcow ẩn trên Internet và tôi cảm thấy rằng tôi không thể tuyệt vời nữa. Tôi cũng đã tìm thấy một đầu vàoBlog đầu vào bính âm của Trung Quốc trên Internet. Đối với mã có thể chạy, có thể chạy, Bạn chỉ có thể tìm thấy nhật ký của tin đồn trên internet. Dựa trên khóa đào tạo này, mô hình Marcow ẩn được vẽ. github Địa chỉ. https. //github. com/LiuRoy/Pinyin_Demo Nguyên tắc của các nguyên tắc ẩn mô hình Marcow Sao chép khoảng thời gian định nghĩa trên Internet Mô hình Marcov ẩn (Mô hình Markov ẩn) là một mô hình bảng kê để mô tả một quy trình chứa các quy trình Malcov có chứa các tham số chưa biết. Khó khăn của nó là xác định các tham số của quá trình từ các tham số được quan sát và sau đó sử dụng các tham số này để phân tích thêm Tham số có thể được quan sát trong phương pháp bắt đầu vào bính âm là bính âm và tham số dừng là các ký tự Trung Quốc tương ứng viterbi Thuật toán Tham khảohttps. //zh. wikipedia. org/wiki /Thuật toán Witbi, ý tưởng là lập kế hoạch động, mã đơn giản hơn, vì vậy tôi sẽ không đi sâu vào chi tiết Giải thích mã mô hình Định nghĩa Xem tệp mô hình/bảng. py. Đối với ba hiệu suất của Marcow ẩn, ba bảng dữ liệu được thiết kế để lưu trữ. Ưu điểm này được hiển thị. Ma trận xác thực của các nhân vật Trung Quốc là một trận ma trận rất thưa thớt. Lưu trữ tệp trực tiếp sử dụng một không gian lớn và nó chỉ có thể được đọc trong bộ nhớ cùng một lúc khi tải xuống. Ngoài ra, hoạt động tham gia của cơ sở dữ liệu rất thuận tiện cho việc tính toán kết quả của thuật toán viterbi Bảng dữ liệu được xác định như sau Create model Xem tệp train/main. py, init side in bắt đầu, ban đầu mission,init_transition Tương ứng với ma trận xác thực ban đầu trong mô hình Marcow ẩn, ma trận xác định phát xạ, ma trận xác thực truyền và ghi kết quả được tạo vào tệp sqlite. Bộ dữ liệu được sử dụng trong đào tạo là một thư viện trong từ nói lắp, bởi vì không có câu dài đào tạo và kết quả của hoạt động cuối cùng cũng chứng minh rằng nó chỉ có thể được áp dụng cho đầu câu hỏi ngắn Ban đầu ma trận xác định Ma trận khởi động bảng kê là tìm ra tất cả các ký tự Trung Quốc xuất hiện ở đầu từ và đếm số lần chúng xuất hiện ở đầu từ. Cuối cùng, sự xác minh của các ký tự Trung Quốc này xuất hiện trong lần đầu tiên của các ký tự dựa trên dữ liệu trên. Specify 0 is 0, not write into the database. Một điều cần chú ý là ngăn chặn tính toán tính toán, bởi vì tính toán càng nhỏ, máy tính càng ít, máy tính không thể so sánh được. Kết quả của các số liệu thống kê như sau PIC-1Chuyển ma trận xác định Mô hình Markov ẩn đơn giản nhất được sử dụng ở đây, nghĩa là sự xuất hiện của mỗi nhân vật Trung Quốc trong một câu chỉ liên quan đến nhân vật Trung Quốc trước đó. Mặc dù đơn giản và lỗi thô, nhưng nó đã có thể giải đáp hầu hết các vấn đề. Too the Statistics system is found bộ sưu tập nhân vật Trung Quốc phía sau mỗi ký tự Trung Quốc trong từ điển và xác định hệ thống thống kê. Bởi vì ma trận xác thực rất lớn, dữ liệu của cơ sở dữ liệu quá chậm và nó có thể được tối ưu hóa thành văn bản hàng loạt để cải thiện hiệu quả đào tạo hiệu quả. The results is as after Tuổi từ xác định cao nhất của xác định cao nhất sau hình trên, cũng như đáp ứng thói quen hàng ngày Khởi động ma trận xác thực Sự phổ biến là đếm các bính âm tương ứng với từng ký tự Trung Quốc và xác định được sử dụng trong các tình huống hàng ngày. > and pu verify output. Các số liệu thống kê ở đây sử dụng mô-đun pypinyin và cụm từ trong từ điển đã được chuyển đổi thành bính âm để thống kê xác thực, nhưng cách phát âm của một số nơi không hoàn toàn chính xác. Các kết quả thống kê như sau PIC-3viterbi Việc phát triển khai File mã input_method/viterbi. py, ở đây sẽ tìm thấy tối đa mười giải pháp tối ưu bộ cục bộ. Lưu ý rằng có mười giải pháp tối ưu cục bộ thay vì mười giải pháp tối ưu toàn cầu, nhưng giải pháp tốt nhất trong số mười giải pháp là giải pháp tối ưu toàn cầu nhất, mã như sau Kết quả cho thấy Run input file_method/viterbi. py, chỉ cần hiển thị kết quả đang chạy PIC-4Số liệu thống kê. Từ điển tạo ma trận chuyển đổi để ghi vào cơ sở dữ liệu quá chậm và phải mất gần mười phút để chạy một lần. Dữ liệu ma trận phát xạ không chính xác và luôn có một số ký tự Trung Quốc. bính âm không khớp. Bộ đào tạo quá nhỏ và phương pháp đầu vào được thực hiện không phù hợp với các câu dài 目录 安装 基本拼音 风格转换 严格模式 自定义拼音 python 中提供了汉字转拼音的库,名字叫做 PyPinyin,可以用于汉字注音、排序、检索等等场合,是基于 hotto/pinyin 这个库开发的,一些站点链接如下: GitHub. https. //github. com/mozillazg/python-bính âm 文档: https. //pypinyin. đọcthedocs. io/zh_CN/thầy/ PyPi: https. //pypi. tổ chức/dự án/pypinyin/ 安装首先就是这个库的安装了,通过 pip 安装即可:
安装完成之后导入一下这个库,如果不报错,那就说明安装成功了。
基本拼音首先我们进行一下基本的拼音转换,方法非常简单,直接调用 pinyin 方法即可:
可以看到结果会是一个二维的列表,每个元素都另外成了一个列表,其中包含了每个字的读音。
好吧,它只给出来了一个读音,但是如果我们想要另外一种读音咋办呢?
OK 了,这下子就显示出来了两个读音了,而且我们也明白了结果为什么是一个二维列表,因为里面的一维的结果可能是多个,比如多音字的情况就是这样。 但这个多少解析起来有点麻烦,很多情况下我们是不需要管多音字的,我们只是用它来转换一下名字而已,而处理上面的二维数组又比较麻烦。 所以有没有一个方法直接给我们一个一维列表呢?有!
这时候观察到得到的是一个列表,并且不再包含音调了。 风格转换我们可以对结果进行一些风格转换,比如不带声调风格、标准声调风格、声调在拼音之后、声调在韵母之后、注音风格等等,比如我们想要声调放在拼音后面,可以这么来实现:
可以看到运行结果每个拼音后面就多了一个声调,这就是其中的一个风格,叫做 TONE3,其实还有很多风格,下面是我从源码里面找出来的定义:
有了这些,我们就可以轻松地实现风格转换了。 这下懂了吧,因为 pinyin 方法默认使用了 TONE 的风格,而 lazy_pinyin 方法默认使用了 NORMAL 的风格,所以就导致二者返回风格不同了。 好了,有了这两个函数的定义,我们再来研究下其他的参数,比如定义里面的 errors 和 strict 参数又怎么用呢? 在这里我们先做一个测试,比如我们传入无法转拼音的字,比如:
可以看到结果中星号和英文字符都作为一个整体并原模原样返回了。 那么这种特殊字符可以单独进行处理吗?当然可以,这里就用到刚才提到的 errors 参数了。 errors 参数是有几种模式的: 下面是 errors 这个参数的源码实现逻辑: 0当处理没有拼音的字符的时候,errors 的不同参数会有不同的处理结果,更详细的逻辑可以翻看源码。 好了,下面我们来尝试一下,比如我们想将不能转拼音的字符去掉,则可以这么设置: 1如果我们想要自定义处理,比如把 ☆ 转化为 ※ ,则可以这么设置: 2如上便是一些相关异常处理的操作,我们可以随心所欲地处理自己想处理的字符了。 严格模式最后再看下 strict 模式,这个参数用于控制处理声母和韵母时是否严格遵循《汉语拼音方案》 标准。 下面的一些说明来源于官方文档: 当 strict 参数为 True 时根据《汉语拼音方案》 的如下规则处理声母、在韵母相关风格下还原正确的韵母:
当 strict 为 False 时就是不遵守上面的规则来处理声母和韵母, 比如: y , w 会被当做声母,yu(迂) 的韵母就是一般认为的 u 等。 具体差异可以查看源码中 tests/test_standard. py 中的对比结果测试用例。 自定义拼音如果对库返回的结果不满意,我们还可以自定义自己的拼音库,这里用到的方法就有 load_single_dict 和 load_phrases_dict 方法了。 比如刚才我们看到 “朝阳” 两个字的发音默认返回的是 zhao yang,我们想默认返回 chao yang,那可以这么做: 3这里我们自定义了一个词典,然后使用 load_phrases_dict 方法设置了一下就可以了。 4这样就可以完成自定义的设置了。 |