基本物件

上手

臺灣言語工具操作的基本物件。若初次使用,推薦直接使用物件

>>> from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器
>>> 
>>> 拆文分析器.建立句物件('Ta̍k-ke gâu-tsá')  # 全羅馬字(全羅)
句:[集:[組:[詞:[字:Ta̍k , 字:ke ], 詞:[字:gâu , 字:tsá ]]]]
>>> 
>>> 拆文分析器.建立句物件('逐家 gâu早')  # 漢羅
句:[集:[組:[詞:[字:逐 , 字:家 ], 詞:[字:gâu , 字:早 ]]]]
>>> 
>>> 拆文分析器.建立句物件('逐家gâu早', 'Ta̍k-ke gâu-tsá')  # 漢羅 kah 全羅
句:[集:[組:[詞:[字:逐 Ta̍k, 字:家 ke], 詞:[字:gâu gâu, 字:早 tsá]]]]

介紹

    • 包含許多

    • 包含許多

    • 包含許多,這些是代表這個語句在這個,有多個可以選,但是整個語句只能用其中一個

    • 包含許多

    • 包含許多

    • 裡面含兩個變數

    • 若是漢語語系,用來存漢字,用來存音標。若是只有漢字或音標,則都存在內底

    • 若是南島語系,則都存在裡面

建立物件

拆文分析器是建立基本物件的主要工具,可以處理大多數情形的語料,使用拆文分析器.建立句物件(語句)函式

>>> from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器
>>> 
>>> 拆文分析器.建立句物件('臺語工具')  # 全漢字
章:[句:[集:[組:[詞:[字:臺 ], 詞:[字:語 ], 詞:[字:工 ], 詞:[字:具 ]]]]]
>>> 
>>> 拆文分析器.建立句物件('tai5-gi2 kang1-ku7')  # 全羅馬字音標
章:[句:[集:[組:[詞:[字:tai5 , 字:gi2 ], 詞:[字:kang1 , 字:ku7 ]]]]]
>>> 
>>> 拆文分析器.建立句物件('臺語工ku7')  # 漢字音標混合
章:[句:[集:[組:[詞:[字:臺 ], 詞:[字:語 ], 詞:[字:工 ], 詞:[字:ku7 ]]]]]
>>> 

若是同時有漢字和音標,則可以傳兩ê參數拆文分析器.建立句物件(語句, 羅馬字)

>>> from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器
>>> 
>>> 拆文分析器.建立句物件('臺語工具', 'tai5-gi2 kang1-ku7')  # 有全部的漢字和羅馬字對應
章:[句:[集:[組:[詞:[字:臺 tai5, 字:語 gi2], 詞:[字:工 kang1, 字:具 ku7]]]]]
>>> 
>>> 拆文分析器.建立句物件('臺語工ku7', 'tai5-gi2 kang1-ku7')  # 漢羅OK
章:[句:[集:[組:[詞:[字:臺 tai5, 字:語 gi2], 詞:[字:工 kang1, 字:ku7 ku7]]]]]
>>> 
>>> 拆文分析器.建立句物件('tai5-gi2 kang1-ku7', 'tai5-gi2 kang1-ku7')  # 羅馬字對應羅馬字嘛ē-sái
章:[句:[集:[組:[詞:[字:tai5 tai5, 字:gi2 gi2], 詞:[字:kang1 kang1, 字:ku7 ku7]]]]]

其中語句羅馬字的字數要相同,否則會擲出解析錯誤例外。

拆文分析器還有建立章物件建立集物件建立組物件建立詞物件建立字物件函式。詳細行為可以參考單元試驗

分詞物件

基本物件會當輸出做分詞字串形態,方便tī資料庫等處理。用物件.看分詞()得著分詞拆文分析器.分詞句物件(分詞)載入分詞

>>> from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器
>>> 
>>> 句物件 = 拆文分析器.建立句物件('逐家gâu早', 'Ta̍k-ke gâu-tsá')
>>> 句物件.看分詞()
'逐-家|Ta̍k-ke gâu-早|gâu-tsá'
>>> 拆文分析器.分詞句物件(句物件.看分詞()) == 句物件
True

拆文分析器還有分詞章物件分詞集物件分詞組物件分詞詞物件分詞字物件函式。詳細行為可以參考單元試驗

輸出

物件會使照需要拿出分詞

>>> from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器
>>> 
>>> 漢字 = '臺語工具'
>>> 音標 = 'tai5-gi2 kang1-ku7'
>>> 章物件 = 拆文分析器.對齊章物件(漢字, 音標)
>>> 章物件.看型()
'臺語工具'
>>> 章物件.看音()
'tai5-gi2 kang1-ku7'
>>> 章物件.看分詞()
'臺-語|tai5-gi2 工-具|kang1-ku7'

方便複製

from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器

漢字 = '臺語工具'
音標 = 'tai5-gi2 kang1-ku7'
章物件 = 拆文分析器.對齊章物件(漢字, 音標)
章物件.看型()
章物件.看音()
章物件.看分詞()

分詞包含漢字和音標,而且分詞能夠經由拆文分析器再轉成物件

from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器

章物件 = 拆文分析器.對齊章物件('臺語工具', 'tai5-gi2 kang1-ku7')
分詞 = 章物件.看分詞()
分詞章物件 = 拆文分析器.分詞章物件(分詞)  # 分詞章物件 == 章物件

函式定義

元素.看型(物件分字符號='', 物件分詞符號='', 物件分句符號='')

回傳元素的全部型。參數會當設定中的分隔符號,預設不分隔。

元素.看音(物件分字符號=分字符號, 物件分詞符號=分詞符號, 物件分句符號=分詞符號)

回傳元素的全部音。參數會當設定中的分隔符號。分字符號-分詞符號

元素.看分詞(物件分型音符號=分型音符號, 物件分字符號=分字符號, 物件分詞符號=分詞符號, 物件分句符號=分詞符號):

回傳元素的分詞,這個分詞可以被拆文分析器轉做。參數會當設定中的分隔符號。分字符號-分詞符號

處理

基本物件的函式,函式回傳皆是新的物件,原本的物件並不會改變。

斷詞

部份漢語語料是漢字佮羅馬字混雜,為了讓語料能更一致,斷詞有兩種方法

兩步斷詞

先用辭典切出對應的斷點,才閣揀出其中一個當結果

a='11'
函式定義
    def 揣詞(self, 揣詞方法, *參數陣列, **參數物件):
    def (self, 揀集內組方法, *參數陣列, **參數物件):

直接斷詞

仝款用辭典佮語言模型,辭典語言模型斷詞會試逐種組合,毋過速度較慢

華語斷詞

中研院斷詞

函式定義
    def 斷詞(self, 斷詞方法, *參數陣列, **參數物件):

翻譯

    def 翻譯(self, 翻譯方法, *參數陣列, **參數物件):

其他處理

為了介面清楚,一些不常用、不通用的功能就不另外包函式。像是要使用閩南語變調.變調(cls, 物件)就可以用函式

物件.(閩南語變調, '變調')

而要參數的集內組照排.排(cls, 排法, 物件)可以用

物件.(集內組照排, '排', 排法=lambda 物件:str(物件))

函式定義

    def (self, 模組, 函式名, *參數陣列, **參數物件):

預處理(deprecated)

因為閩南語語料的-,有斷詞意義,所以拆文分析器-限制較濟。語句在分析前建議都先用文章粗胚預處理

漢語

親像閩南語有輕聲--文章粗胚會先轉做-0

>>> from 臺灣言語工具.解析整理.文章粗胚 import 文章粗胚
>>> from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器
>>> from 臺灣言語工具.音標系統.閩南語.臺灣閩南語羅馬字拼音 import 臺灣閩南語羅馬字拼音
>>> 
>>> 原來語句 = '人莫走boo5--ki3。'
>>> 處理好語句 = 文章粗胚.建立物件語句前處理減號(臺灣閩南語羅馬字拼音, 原來語句)  # --輕聲轉成-0
# 處理好語句 == '人莫走boo5-0ki3。'
>>> 加空白後語句 = 文章粗胚.符號邊仔加空白(處理好語句)  # 句號旁加空白
# 加空白後語句 == '人莫走boo5-0ki3 。 ' 
>>> 拆文分析器.建立章物件(加空白後語句)
章:[句:[集:[組:[詞:[字:人 ], 詞:[字:莫 ], 詞:[字:走 ], 詞:[字:boo5 , 字:0ki3 ], 詞:[字:。 ]]]]]

南島語

目前拆文分析器還不能正確處理',不過流程大致如下

from 臺灣言語工具.解析整理.文章粗胚 import 文章粗胚
from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器
from 臺灣言語工具.音標系統.閩南語.臺灣閩南語羅馬字拼音 import 臺灣閩南語羅馬字拼音

原來語句 = "Nga'ay ho?"
處理好語句 = 文章粗胚.建立物件語句前減號變標點符號(原來語句)
加空白後語句 = 文章粗胚.符號邊仔加空白(處理好語句)
拆文分析器.建立章物件(加空白後語句)