JioNLP
1.0.0

pip install jionlpJioNLP 是一個面向NLP 開發者的工具包,提供NLP 任務預處理、解析功能,準確、高效、零使用門檻。請下拉本網頁,查閱具體功能信息,並按Ctrl+F進行搜索。 JioNLP在線版可快速試用部分功能。關注同名微信公眾號JioNLP可獲取最新的AI 資訊,數據資源。
norm_score.json and max_score.json from test data with password jmbo .*.json file. $ git clone https://github.com/dongrixinyu/JioNLP
$ cd JioNLP/test/
$ python test_mellm.py
>>> import jionlp as jio
>>> llm_test = jio.llm_test_dataset_loader(version='1.1')
>>> print(llm_test[15])
>>> llm_test = jio.llm_test_dataset_loader(field='math')
>>> print(llm_test[5])
$ git clone https://github.com/dongrixinyu/JioNLP
$ cd ./JioNLP
$ pip install .
$ pip install jionlp
>>> import jionlp as jio
>>> print(jio.__version__) # 查看 jionlp 的版本
>>> dir(jio)
>>> print(jio.extract_parentheses.__doc__)
| 功能 | 函數 | 描述 | 星級 |
|---|---|---|---|
| 查找幫助 | help | 若不知道JioNLP 有哪些功能,可根據命令行提示鍵入若干關鍵詞做搜索 | |
| 車牌號解析 | parse_motor_vehicle_licence_plate | 給定一個車牌號,對其進行解析 | |
| 時間語義解析 | parse_time | 給定時間文本,解析其時間語義(時間戳、時長)等 | |
| 關鍵短語抽取 | extract_keyphrase | 給定一篇文本,抽取其對應關鍵短語 | |
| 抽取式文本摘要 | extract_summary | 給定一篇文本,抽取其對應文摘 | |
| 停用詞過濾 | remove_stopwords | 給定一個文本被分詞後的詞list,去除其中的停用詞 | |
| 分句 | split_sentence | 對文本按標點分句 | |
| 地址解析 | parse_location | 給定一個包含國內地址字符串,識別其中的省、市、縣區、鄉鎮街道、村社等信息 | |
| 電話號碼歸屬地、 運營商解析 | phone_location cell_phone_location landline_phone_location | 給定一個電話號碼(手機號、座機號)字符串,識別其中的省、市、運營商 | |
| 新聞地名識別 | recognize_location | 給定新聞文本,識別其中的國內省、市、縣,國外國家、城市等信息 | |
| 公曆農曆日期互轉 | lunar2solar solar2lunar | 給定某公(農)曆日期,將其轉換為農(公)歷 | |
| 身份證號解析 | parse_id_card | 給定一個身份證號,識別對應的省、市、縣、出生年月、 性別、校驗碼等信息 | |
| 成語接龍 | idiom_solitaire | 成語接龍,即前一成語的尾字和後一成語的首字(讀音)相同 | |
| 色情數據過濾 | - | - | |
| 反動數據過濾 | - | - | |
| 繁體轉簡體 | tra2sim | 繁體轉簡體,支持逐字轉與最大匹配兩種模式 | |
| 簡體轉繁體 | sim2tra | 簡體轉繁體,支持逐字轉與最大匹配兩種模式 | |
| 漢字轉拼音 | pinyin | 找出中文文本對應的漢語拼音,並可返回聲母、韻母、聲調 | |
| 漢字轉偏旁與字形 | char_radical | 找出中文文本對應的漢字字形結構信息, 包括偏旁部首(“河”氵)、字形結構(“河”左右結構)、 四角編碼(“河”31120)、漢字拆解(“河”水可)、 五筆編碼(“河”ISKG) | |
| 金額數字轉漢字 | money_num2char | 給定一條數字金額,返回其漢字大寫結果 | |
| 新詞發現 | new_word_discovery | 給定一語料文本文件,統計其中高可能成詞 |
| 功能 | 函數 | 描述 | 星級 |
|---|---|---|---|
| 回譯 | BackTranslation | 給定一篇文本,採用各大廠雲平台的機器翻譯接口, 實現數據增強 | |
| 鄰近漢字換位 | swap_char_position | 隨機交換相近字符的位置,實現數據增強 | |
| 同音詞替換 | homophone_substitution | 相同讀音詞彙替換,實現數據增強 | |
| 隨機增刪字符 | random_add_delete | 隨機在文本中增加、刪除某個字符,對語義不造成影響 | |
| NER實體替換 | replace_entity | 根據實體詞典,隨機在文本中替換某個實體,對語義不造成影響,也廣泛適用於序列標註、文本分類 |
| 功能 | 函數 | 描述 | 星級 |
|---|---|---|---|
| 清洗文本 | clean_text | 去除文本中的異常字符、冗餘字符、HTML標籤、括號信息、 URL、E-mail、電話號碼,全角字母數字轉換為半角 | |
| 抽取E-mail | extract_email | 抽取文本中的E-mail,返回位置與域名 | |
| 解析貨幣金額 | extract_money | 解析貨幣金額字符串 | |
| 抽取微信號 | extract_wechat_id | 抽取微信號,返回位置 | |
| 抽取電話號碼 | extract_phone_number | 抽取電話號碼(含手機號、座機號),返回域名、類型與位置 | |
| 抽取中國身份證ID | extract_id_card | 抽取身份證ID,配合jio.parse_id_card返回身份證的詳細信息(省市縣、出生日期、性別、校驗碼) | |
| 抽取QQ號 | extract_qq | 抽取QQ 號,分為嚴格規則和寬鬆規則 | |
| 抽取URL | extract_url | 抽取URL 超鏈接 | |
| 抽取IP地址 | extract_ip_address | 抽取IP 地址 | |
| 抽取括號中的內容 | extract_parentheses | 抽取括號內容,包括{}「」[]【】()()<>《》 | |
| 抽取車牌號 | extract_motor_vehicle_licence_plate | 抽取大陸車牌號信息 | |
| 刪除E-mail | remove_email | 刪除文本中的E-mail 信息 | |
| 刪除URL | remove_url | 刪除文本中的URL 信息 | |
| 刪除電話號碼 | remove_phone_number | 刪除文本中的電話號碼 | |
| 刪除IP地址 | remove_ip_address | 刪除文本中的IP 地址 | |
| 刪除身份證號 | remove_id_card | 刪除文本中的身份證信息 | |
| 刪除QQ | remove_qq | 刪除文本中的qq 號 | |
| 刪除HTML標籤 | remove_html_tag | 刪除文本中殘留的HTML 標籤 | |
| 刪除括號中的內容 | remove_parentheses | 刪除括號內容,包括{}「」[]【】()()<>《》 | |
| 刪除異常字符 | remove_exception_char | 刪除文本中異常字符,主要保留漢字、常用的標點, 單位計算符號,字母數字等 | |
| 刪除冗餘字符 | remove_redundant_char | 刪除文本中冗餘重複字符 | |
| 歸一化E-mail | replace_email | 歸一化文本中的E-mail 信息為<email> | |
| 歸一化URL | replace_url | 歸一化文本中的URL 信息為<url> | |
| 歸一化電話號碼 | replace_phone_number | 歸一化文本中的電話號碼為<tel> | |
| 歸一化IP地址 | replace_ip_address | 歸一化文本中的IP 地址為<ip> | |
| 歸一化身份證號 | replace_id_card | 歸一化文本中的身份證信息為<id> | |
| 歸一化QQ | replace_qq | 歸一化文本中的qq 號為<qq> | |
| 判斷文本是否包含中文字符 | check_any_chinese_char | 檢查文本中是否包含中文字符,若至少包含一個,則返回True | |
| 判斷文本是否全部是中文字符 | check_all_chinese_char | 檢查文本中是否全部是中文字符,若全部都是,則返回True | |
| 判斷文本是否包含阿拉伯數字 | check_any_arabic_num | 檢查文本中是否包含阿拉伯數字,若至少包含一個,則返回True | |
| 判斷文本是否全部是阿拉伯數字 | check_all_arabic_num | 檢查文本中是否全部是阿拉伯數字,若全部都是,則返回True |
| 功能 | 函數 | 描述 | 星級 |
|---|---|---|---|
| 按行讀取文件 | read_file_by_iter | 以迭代器形式方便按行讀取文件,節省內存, 支持指定行數,跳過空行 | |
| 按行讀取文件 | read_file_by_line | 按行讀取文件,支持指定行數,跳過空行 | |
| 將list 中元素按行寫入文件 | write_file_by_line | 將list 中元素按行寫入文件 | |
| 計時工具 | TimeIt | 統計某一代碼段的耗時 | |
| 日誌工具 | set_logger | 調整工具包日誌輸出形式 |
| 功能 | 函數 | 描述 | 星級 |
|---|---|---|---|
| 大語言模型LLM 評測數據集 | jio.llm_test_dataset_loader | LLM 評測數據集 | |
| Byte-level BPE | jio.bpe.byte_level_bpe | Byte-level-BPE 算法 | |
| 停用詞詞典 | jio.stopwords_loader() | 綜合了百度、jieba、訊飛等的停用詞詞典 | |
| 成語詞典 | chinese_idiom_loader | 加載成語詞典 | |
| 歇後語詞典 | xiehouyu_loader | 加載歇後語詞典 | |
| 中國地名詞典 | china_location_loader | 加載中國省、市、縣三級詞典 | |
| 中國區劃調整詞典 | china_location_change_loader | 加載2018 年以來中國縣級以上區劃調整更名記錄 | |
| 世界地名詞典 | world_location_loader | 加載世界大洲、國家、城市詞典 | |
| 新華字典 | chinese_char_dictionary_loader | 加載新華字典 | |
| 新華詞典 | chinese_word_dictionary_loader | 加載新華詞典 |
| 功能 | 函數 | 描述 | 星級 |
|---|---|---|---|
| 抽取貨幣金額實體 | extract_money | 從文本中抽取出貨幣金額實體 | |
| 抽取時間實體 | extract_time | 從文本中抽取出時間實體 | |
| 基於詞典NER | LexiconNER | 依據指定的實體詞典,前向最大匹配實體 | |
| entity 轉tag | entity2tag | 將json 格式實體轉換為模型處理的tag 序列 | |
| tag 轉entity | tag2entity | 將模型處理的tag 序列轉換為json 格式實體 | |
| 字token 轉詞token | char2word | 將字符級別token 轉換為詞彙級別token | |
| 詞token 轉字token | word2char | 將詞彙級別token 轉換為字符級別token | |
| 比較標註與模型預測的實體差異 | entity_compare | 針對人工標註的實體,與模型預測出的實體結果,做差異比對 | |
| NER模型預測加速 | TokenSplitSentence TokenBreakLongSentence TokenBatchBucket | 對NER 模型預測並行加速的方法 | |
| 分割數據集 | analyse_dataset | 對NER 標註語料,分為訓練集、驗證集、測試集,並給出各個子集的實體類型分佈統計 | |
| 實體收集 | collect_dataset_entities | 將標註語料中的實體收集起來,形成詞典 |
| 功能 | 函數 | 描述 | 星級 |
|---|---|---|---|
| 樸素貝葉斯分析類別詞彙 | analyse_freq_words | 對文本分類的標註語料,做樸素貝葉斯詞頻分析,返回各類文本的高條件概率詞彙 | |
| 分割數據集 | analyse_dataset | 對文本分類的標註語料,切分為訓練集、驗證集、測試集, 並給出各個子集的分類分佈統計 |
| 功能 | 函數 | 描述 | 星級 |
|---|---|---|---|
| 基於詞典情感分析 | LexiconSentiment | 依據人工構建的情感詞典,計算文本的情感值,介於0~1之間 |
| 功能 | 函數 | 描述 | 星級 |
|---|---|---|---|
| word 轉tag | cws.word2tag | 將json 格式分詞序列轉換為模型處理的tag 序列 | |
| tag 轉word | cws.tag2word | 將模型處理的tag 序列轉換為json 格式分詞 | |
| 統計F1值 | cws.f1 | 比對分詞標註標籤於模型預測標籤的F1值 | |
| 分詞數據矯正-標準詞典 | cws.CWSDCWithStandardWords | 使用標準詞典對分詞標註數據進行矯正和修復 |
Chengyu Cui, JioNLP, (2020), GitHub repository, https://github.com/dongrixinyu/JioNLP

