Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

Commit

Permalink
Merge pull request #279 from sih4sing5hong5/free-syllable無需要用分詞型式
Browse files Browse the repository at this point in the history
Free syllable無需要用分詞型式

fix #234
  • Loading branch information
sih4sing5hong5 committed Apr 3, 2018
2 parents da9a075 + 1ac7f88 commit 9897d15
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 49 deletions.
17 changes: 7 additions & 10 deletions 臺灣言語服務/Kaldi語料處理.py
@@ -1,12 +1,11 @@
# -*- coding: utf-8 -*-

from 臺灣言語工具.基本物件.公用變數 import 無音
from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器
from 臺灣言語服務.Kaldi語料匯出 import Kaldi語料匯出
from 臺灣言語工具.基本物件.公用變數 import 分型音符號
import re
from 臺灣言語工具.解析整理.解析錯誤 import 解析錯誤
from 臺灣言語服務.Kaldi語料匯出 import Kaldi語料匯出
from 臺灣言語服務.models import 訓練過渡格式
from 臺灣言語工具.基本物件.公用變數 import 無音
import re


class Kaldi語料處理():
Expand All @@ -33,8 +32,8 @@ def 轉fst格式(cls, 辭典輸出物件, 音陣列):
= set()
for 音節 in 音陣列:
.add(
'0\t0\t{2}{1}{2}\t{2}{1}{2}'.format(
音節, 分型音符號, 辭典輸出物件.漢字聲韻(音節)
'0\t0\t{1}\t{1}'.format(
音節, 辭典輸出物件.漢字聲韻(音節)
)
)
資料 = sorted()
Expand All @@ -47,7 +46,7 @@ def 轉辭典檔(cls, 辭典輸出物件, 音陣列):
for 音節 in sorted(音陣列):
辭典格式, *_新聲學類 = Kaldi語料匯出.音節轉辭典格式(
拆文分析器.對齊字物件(音節, 音節), 辭典輸出物件,
'{1}{0}{1}'.format(分型音符號, 辭典輸出物件.漢字聲韻(音節))
辭典輸出物件.漢字聲韻(音節)
)
資料.add(辭典格式)
return sorted(資料)
Expand All @@ -67,9 +66,7 @@ def 轉音節text格式(cls, 音標系統, 語句陣列):
= 字物件.
音標物件 = 音標系統()
if 音標物件.音標:
音節逝.append('{2}{1}{2}'.format(
音標物件.音標, 分型音符號, 音標物件. + 音標物件.
))
音節逝.append(音標物件. + 音標物件.)
結果.append(' '.join(音節逝))
return 結果

Expand Down
68 changes: 34 additions & 34 deletions 試驗/Kaldi/test匯出漢語音節fst單元試驗.py
Expand Up @@ -54,11 +54,11 @@ def test_轉fst(self):
self.assertEqual(
fst,
[
'0\t0\tkan|kan\tkan|kan',
'0\t0\tleh|leh\tleh|leh',
'0\t0\tna|na\tna|na',
'0\t0\tpoo|poo\tpoo|poo',
'0\t0\tsan|san\tsan|san',
'0\t0\tkan\tkan',
'0\t0\tleh\tleh',
'0\t0\tna\tna',
'0\t0\tpoo\tpoo',
'0\t0\tsan\tsan',
'0\t1',
]
)
Expand All @@ -71,7 +71,7 @@ def test_fst仝調一條路就好(self):
self.assertEqual(
fst,
[
'0\t0\tsui|sui\tsui|sui',
'0\t0\tsui\tsui',
'0\t1',
]
)
Expand All @@ -84,11 +84,11 @@ def test_轉辭典檔(self):
self.assertEqual(
fst,
[
'kan|kan\tk- a2 n2',
'leh|leh\tl- e4 ʔ4',
'na|na\tn- a2',
'poo|poo\tp- o7',
'san|san\ts- a3 n3'
'kan\tk- a2 n2',
'leh\tl- e4 ʔ4',
'na\tn- a2',
'poo\tp- o7',
'san\ts- a3 n3'
]
)

Expand All @@ -100,9 +100,9 @@ def test_仝音攏出現(self):
self.assertEqual(
fst,
[
'sui|sui\ts- u1 i1',
'sui|sui\ts- u2 i2',
'sui|sui\ts- u3 i3',
'sui\ts- u1 i1',
'sui\ts- u2 i2',
'sui\ts- u3 i3',
]
)

Expand All @@ -114,11 +114,11 @@ def test_輕聲佮原本音攏仝款(self):
self.assertEqual(
fst,
[
'khiau|khiau\tkʰ- i2 a2 u2',
'sui|sui\ts- u0 i0',
'sui|sui\ts- u1 i1',
'sui|sui\ts- u2 i2',
'sui|sui\ts- u3 i3',
'khiau\tkʰ- i2 a2 u2',
'sui\ts- u0 i0',
'sui\ts- u1 i1',
'sui\ts- u2 i2',
'sui\ts- u3 i3',
]
)

Expand All @@ -130,10 +130,10 @@ def test_外來詞佮原本音攏仝款(self):
self.assertEqual(
fst,
[
'khiau|khiau\tkʰ- i2 a2 u2',
'sui|sui\ts- u1 i1',
'sui|sui\ts- u2 i2',
'sui|sui\ts- u3 i3',
'khiau\tkʰ- i2 a2 u2',
'sui\ts- u1 i1',
'sui\ts- u2 i2',
'sui\ts- u3 i3',
]
)

Expand All @@ -145,7 +145,7 @@ def test_單元音(self):
self.assertEqual(
fst,
[
'i|i\tʔ- i1',
'i\tʔ- i1',
]
)

Expand All @@ -164,11 +164,11 @@ def test_指令有讀(self, 揣出漢語音節種類mock):
@patch('臺灣言語服務.Kaldi語料處理.Kaldi語料處理.轉fst格式')
def test_指令有輸出fst(self, 轉fst格式mock):
轉fst格式mock.return_value = [
'0 0 leh4|leh4 leh4|leh4',
'0 0 kan2|kan2 kan2|kan2',
'0 0 na2|na2 na2|na2',
'0 0 poo7|poo7 poo7|poo7',
'0 0 san3|san3 san3|san3',
'0 0 leh leh',
'0 0 kan kan',
'0 0 na na',
'0 0 poo poo',
'0 0 san san',
'0 1',
]
with TemporaryDirectory() as 資料夾路徑:
Expand All @@ -181,11 +181,11 @@ def test_指令有輸出fst(self, 轉fst格式mock):
self.比較檔案(
join(資料夾路徑, 'data', 'local', 'free-syllable', 'uniform.fst'),
[
'0 0 leh4|leh4 leh4|leh4',
'0 0 kan2|kan2 kan2|kan2',
'0 0 na2|na2 na2|na2',
'0 0 poo7|poo7 poo7|poo7',
'0 0 san3|san3 san3|san3',
'0 0 leh leh',
'0 0 kan kan',
'0 0 na na',
'0 0 poo poo',
'0 0 san san',
'0 1',
]
)
Expand Down
10 changes: 5 additions & 5 deletions 試驗/Kaldi/test匯出漢語音節text單元試驗.py
Expand Up @@ -26,7 +26,7 @@ def test_轉音節(self):
音節,
[
'tong0000000-0000000無註明-ku0000000 '
'kan|kan na|na san|san poo|poo leh|leh'
'kan na san poo leh'
]
)

Expand All @@ -42,7 +42,7 @@ def test_標點無要緊(self):
音節,
[
'tong0000000-0000000無註明-ku0000000 '
'kan|kan na|na san|san poo|poo'
'kan na san poo'
]
)

Expand Down Expand Up @@ -73,15 +73,15 @@ def test_有空逝無要緊(self):
音節,
[
'tong0000000-0000000無註明-ku0000000 '
'kan|kan na|na san|san poo|poo'
'kan na san poo'
]
)

@patch('臺灣言語服務.Kaldi語料處理.Kaldi語料處理.轉音節text格式')
def test_指令有輸出辭典檔(self, 轉音節text格式mock):
轉音節text格式mock.return_value = [
'tong0000000-0000000無註明-ku0000000 '
'kan|kan na|na san|san poo|poo leh|leh'
'kan na san poo leh'
]
with TemporaryDirectory() as 資料夾路徑:
原本語料 = join(資料夾路徑, 'train_dev')
Expand All @@ -100,7 +100,7 @@ def test_指令有輸出辭典檔(self, 轉音節text格式mock):
程式腳本._讀檔案(join(結果語料, 'text')),
[
'tong0000000-0000000無註明-ku0000000 '
'kan|kan na|na san|san poo|poo leh|leh'
'kan na san poo leh'
]
)

Expand Down

0 comments on commit 9897d15

Please sign in to comment.