From c166edab52a39154cfa0fa9cf53bb31a1f6ec59d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Wed, 21 Mar 2018 16:15:36 +0800 Subject: [PATCH 01/59] =?UTF-8?q?=E7=BF=BB=E8=AD=AF=E6=94=B9=E9=81=8E?= =?UTF-8?q?=E6=B8=A1=E8=A9=A6=E9=A9=97=20#272?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...56\345\205\203\350\251\246\351\251\227.py" | 144 ++++++++ ...56\345\205\203\350\251\246\351\251\227.py" | 309 ------------------ 2 files changed, 144 insertions(+), 309 deletions(-) create mode 100644 "\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" delete mode 100644 "\350\251\246\351\251\227/\350\274\270\345\207\272/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" new file mode 100644 index 00000000..1bfa7fa5 --- /dev/null +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" @@ -0,0 +1,144 @@ +import gzip +from os.path import join, isfile, isdir, exists +from shutil import rmtree + +from django.test.testcases import TestCase + + +from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 +from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 +from 臺灣言語服務.models import 訓練過渡格式 + + +class 翻譯試驗(TestCase): + 公家內容 = {'來源': 'Dr. Pigu', '年代': '2017', } + + def setUp(self): + self.目錄 = 翻譯語料資料夾('臺灣話') + + def tearDown(self): + if isdir(翻譯語料資料夾('臺灣話')): + rmtree(翻譯語料資料夾('臺灣話')) + if isdir(翻譯語料資料夾('臺語')): + rmtree(翻譯語料資料夾('臺語')) + + def test_無語料就啥物攏無(self): + Moses模型訓練.輸出全部語料() + self.assertFalse(exists(self.目錄)) + + def test_愛有一筆無語料就啥物攏無(self): + self.加一筆外語你好嗎() + Moses模型訓練.輸出全部語料() + self.assertFalse(exists(self.目錄)) + + def test_有語句檔案(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', 外文='你好嗎?', + 種類='語句', **self.公家內容 + ) + Moses模型訓練.輸出全部語料() + self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz'))) + self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz'))) + + def test_有字詞檔案(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', 外文='你好嗎?', + 種類='字詞', **self.公家內容 + ) + Moses模型訓練.輸出全部語料() + + self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊外語字詞.txt.gz'))) + self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊母語字詞.txt.gz'))) + + def test_有做語言模型的文本(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', 外文='你好嗎?', + 種類='語句', **self.公家內容 + ) + Moses模型訓練.輸出全部語料() + self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz'))) + self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '字詞文本.txt.gz'))) + + def test_外語母語語句對應檢查對齊語句(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', 外文='你好嗎?', + 種類='語句', **self.公家內容 + ) + Moses模型訓練.輸出全部語料() + self.assertEqual( + self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), + sorted(['你好嗎?', '食飽未?']) + ) + self.assertEqual( + self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), + sorted(['食飽未?', '食飽未?']) + ) + + def test_外語母語語句對應檢查對齊字詞(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', 外文='你好嗎?', + 種類='語句', **self.公家內容 + ) + Moses模型訓練.輸出全部語料() + self.assertEqual( + self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語字詞.txt.gz')), + [] + ) + self.assertEqual( + self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語字詞.txt.gz')), + [] + ) + + def test_外語母語語句對應檢查文本(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', 外文='你好嗎?', + 種類='語句', **self.公家內容 + ) + Moses模型訓練.輸出全部語料() + self.assertEqual( + self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), + ['食飽未?'] + ) + self.assertEqual( + self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '字詞文本.txt.gz')), + [] + ) + + def test_愛有語句才有輸出(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', 外文='你好嗎?', + 種類='字詞', **self.公家內容 + ) + Moses模型訓練.輸出全部語料() + self.assertFalse(exists(self.目錄)) + + def test_一個文本(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', + 種類='語句', **self.公家內容 + ) + Moses模型訓練.輸出全部語料() + self.assertEqual( + self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), + ['食飽未?'] + ) + self.assertEqual( + self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), + ['食飽未?'] + ) + self.assertEqual( + self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), + ['食飽未?'] + ) + + def test_一個文本愛有語句才有輸出(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', + 種類='字詞', **self.公家內容 + ) + Moses模型訓練.輸出全部語料() + self.assertFalse(exists(self.目錄)) + + def 得著檔案資料(self, 檔名): + with gzip.open(檔名, 'rt') as 檔案: + return sorted([逝.strip() for 逝 in 檔案.readlines()]) diff --git "a/\350\251\246\351\251\227/\350\274\270\345\207\272/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\350\274\270\345\207\272/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" deleted file mode 100644 index 4eddcb88..00000000 --- "a/\350\251\246\351\251\227/\350\274\270\345\207\272/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" +++ /dev/null @@ -1,309 +0,0 @@ -import gzip -import io -from os.path import join, isfile, isdir, exists -from shutil import rmtree -from unittest.mock import patch -import wave - -from django.test.testcases import TestCase - - -from 臺灣言語資料庫.資料模型 import 版權表 -from 臺灣言語資料庫.欄位資訊 import 會使公開 -from 臺灣言語資料庫.欄位資訊 import 字詞 -from 臺灣言語資料庫.資料模型 import 來源表 -from 臺灣言語資料庫.資料模型 import 外語表 -from 臺灣言語資料庫.資料模型 import 文本表 -from 臺灣言語資料庫.資料模型 import 影音表 -from 臺灣言語服務.輸出 import 資料輸出工具 -from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 - - -class 翻譯試驗(TestCase): - - def setUp(self): - 版權表.objects.create(版權=會使公開) - Pigu = 來源表.objects.create(名='Dr. Pigu') - self.資料內容 = { - '收錄者': Pigu.編號(), - '來源': Pigu.編號(), - '版權': '會使公開', - '種類': '語句', - '語言腔口': '臺灣話', - '著作所在地': '花蓮', - '著作年': '2015', - } - - self.語料 = 資料輸出工具() - self.目錄 = 翻譯語料資料夾('臺灣話') - - def tearDown(self): - if isdir(翻譯語料資料夾('臺灣話')): - rmtree(翻譯語料資料夾('臺灣話')) - if isdir(翻譯語料資料夾('臺語')): - rmtree(翻譯語料資料夾('臺語')) - - def test_無語料就啥物攏無(self): - self.語料.輸出翻譯語料() - self.assertFalse(exists(self.目錄)) - - def test_愛有一筆無語料就啥物攏無(self): - self.加一筆外語你好嗎() - self.語料.輸出翻譯語料() - self.assertFalse(exists(self.目錄)) - - def test_有語句檔案(self): - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.語料.輸出翻譯語料() - self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz'))) - self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz'))) - - def test_有字詞檔案(self): - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.語料.輸出翻譯語料() - self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊外語字詞.txt.gz'))) - self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊母語字詞.txt.gz'))) - - def test_有做語言模型的文本(self): - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.語料.輸出翻譯語料() - self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz'))) - self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '字詞文本.txt.gz'))) - - def test_外語母語語句對應檢查對齊語句(self): - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.語料.輸出翻譯語料() - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), - sorted(['你-好-嗎 ?', '食-飽-未 ?']) - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), - sorted(['食-飽-未 ?', '食-飽-未 ?']) - ) - - def test_外語母語語句對應檢查對齊字詞(self): - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.語料.輸出翻譯語料() - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語字詞.txt.gz')), - [] - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語字詞.txt.gz')), - [] - ) - - def test_外語母語語句對應檢查文本(self): - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.語料.輸出翻譯語料() - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), - ['食-飽-未 ?'] - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '字詞文本.txt.gz')), - [] - ) - - def test_愛有語句才有輸出(self): - self.資料內容['種類'] = 字詞 - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.語料.輸出翻譯語料() - self.assertFalse(exists(self.目錄)) - - def test_外語雙母語對應(self): - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.外語加一筆母語食飽未(外語) - self.語料.輸出翻譯語料() - - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), - sorted(['你-好-嗎 ?', '你-好-嗎 ?', '食-飽-未 ?', '食-飽-未 ?']) - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), - sorted(['食-飽-未 ?', '食-飽-未 ?', '食-飽-未 ?', '食-飽-未 ?']) - ) - - def test_外語影音母語對應(self): - 外語 = self.加一筆外語你好嗎() - 影音 = self.外語加一筆母語影音(外語) - self.母語影音加一筆食飽未(影音) - self.語料.輸出翻譯語料() - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), - sorted(['你-好-嗎 ?', '食-飽-未 ?']) - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), - sorted(['食-飽-未 ?', '食-飽-未 ?']) - ) - - def test_外語母語文本兩層對應檢查對齊語句(self): - 外語 = self.加一筆外語你好嗎() - 第一層文本 = self.外語加一筆母語食飽未(外語) - self.母語文本加一筆食飽未矣(第一層文本) - self.語料.輸出翻譯語料() - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), - sorted(['你-好-嗎 ?', '食-飽-未 ?', '食-飽-未-矣 ! ?']) - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), - sorted(['食-飽-未-矣 ! ?', '食-飽-未-矣 ! ?', '食-飽-未-矣 ! ?']) - ) - - def test_外語母語文本兩層對應檢查文本(self): - 外語 = self.加一筆外語你好嗎() - 第一層文本 = self.外語加一筆母語食飽未(外語) - self.母語文本加一筆食飽未矣(第一層文本) - self.語料.輸出翻譯語料() - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), - ['食-飽-未-矣 ! ?'] - ) - - def test_影音母語對應(self): - 影音 = self.加一筆影音食飽未() - self.母語影音加一筆食飽未(影音) - self.語料.輸出翻譯語料() - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), - ['食-飽-未 ?'] - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), - ['食-飽-未 ?'] - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), - ['食-飽-未 ?'] - ) - - def test_一个影音無對應(self): - self.加一筆影音食飽未() - self.語料.輸出翻譯語料() - self.assertFalse(exists(self.目錄)) - - def test_一個文本(self): - self.加一筆母語食飽未() - self.語料.輸出翻譯語料() - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), - ['食-飽-未 ?'] - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), - ['食-飽-未 ?'] - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), - ['食-飽-未 ?'] - ) - - def test_一個文本愛有語句才有輸出(self): - self.資料內容['種類'] = 字詞 - self.加一筆母語食飽未() - self.語料.輸出翻譯語料() - self.assertFalse(exists(self.目錄)) - - def test_兩層文本(self): - 第一層文本 = self.加一筆母語食飽未() - self.母語文本加一筆食飽未矣(第一層文本) - self.語料.輸出翻譯語料() - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), - sorted(['食-飽-未 ?', '食-飽-未-矣 ! ?']) - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), - ['食-飽-未-矣 ! ?', '食-飽-未-矣 ! ?'] - ) - self.assertEqual( - self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), - ['食-飽-未-矣 ! ?'] - ) - - @patch('臺灣言語資料庫.資料模型.文本表.分詞資料') - def test_外語文本用格式化輸出(self, 分詞資料mocka): - 分詞資料mocka.return_value = '' - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.語料.輸出翻譯語料() - 分詞資料mocka.assert_called_once_with() - - @patch('臺灣言語資料庫.資料模型.文本表.分詞資料') - def test_文本用格式化輸出(self, 分詞資料mocka): - 分詞資料mocka.return_value = '' - self.加一筆母語食飽未() - self.語料.輸出翻譯語料() - 分詞資料mocka.assert_called_once_with() - - def test_無仝語言袂使出現(self): - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.資料內容['語言腔口'] = '臺語' - 外語 = self.加一筆外語你好嗎() - self.外語加一筆母語食飽未(外語) - self.語料 = 資料輸出工具('臺語').輸出翻譯語料() - self.assertFalse(exists(翻譯語料資料夾('臺灣話'))) - - def 加一筆外語你好嗎(self): - 外語內容 = {'外語語言': '華語', '外語資料': '你好嗎?'} - 外語內容.update(self.資料內容) - return 外語表.加資料(外語內容) - - def 外語加一筆母語食飽未(self, 外語): - 文本內容 = {'文本資料': '食飽未?'} - 文本內容.update(self.資料內容) - return 外語.翻母語(文本內容) - - def 外語加一筆母語影音(self, 外語): - 影音資料 = io.BytesIO() - with wave.open(影音資料, 'wb') as 音檔: - 音檔.setnchannels(1) - 音檔.setframerate(16000) - 音檔.setsampwidth(2) - 音檔.writeframesraw(b'0' * 100) - 影音內容 = {'影音資料': 影音資料} - 影音內容.update(self.資料內容) - return 外語.錄母語(影音內容) - - def 加一筆影音食飽未(self): - 影音資料 = io.BytesIO() - with wave.open(影音資料, 'wb') as 音檔: - 音檔.setnchannels(1) - 音檔.setframerate(16000) - 音檔.setsampwidth(2) - 音檔.writeframesraw(b'0' * 100) - 影音內容 = {'影音資料': 影音資料} - 影音內容.update(self.資料內容) - return 影音表.加資料(影音內容) - - def 母語影音加一筆食飽未(self, 影音): - 文本內容 = {'文本資料': '食飽未?'} - 文本內容.update(self.資料內容) - return 影音.寫文本(文本內容) - - def 加一筆母語食飽未(self): - 文本內容 = {'文本資料': '食飽未?'} - 文本內容.update(self.資料內容) - return 文本表.加資料(文本內容) - - def 母語文本加一筆食飽未矣(self, 文本): - 文本內容 = {'文本資料': '食飽未矣 ! ?'} - 文本內容.update(self.資料內容) - return 文本.校對做(文本內容) - - def 得著檔案資料(self, 檔名): - with gzip.open(檔名, 'rt') as 檔案: - return sorted([逝.strip() for 逝 in 檔案.readlines()]) From c2a175b0b6bf18d2d873c5cd42ff450e034795bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Wed, 21 Mar 2018 17:07:27 +0800 Subject: [PATCH 02/59] =?UTF-8?q?=E5=AF=A6=E4=BD=9C=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...41\345\236\213\350\250\223\347\267\264.py" | 48 ++++++++++- ...56\345\205\203\350\251\246\351\251\227.py" | 83 ++++++++++++------- 2 files changed, 99 insertions(+), 32 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index cc07ab39..3ee8b1b5 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- +import gzip from os import makedirs from os.path import join, basename -from 臺灣言語服務.輸出 import 資料輸出工具 from 臺灣言語工具.翻譯.摩西工具.摩西翻譯模型訓練 import 摩西翻譯模型訓練 from 臺灣言語工具.翻譯.摩西工具.語句編碼器 import 語句編碼器 from 臺灣言語工具.系統整合.程式腳本 import 程式腳本 @@ -18,13 +18,55 @@ from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 from 臺灣言語服務.資料模型路徑 import 翻譯模型資料夾 from 臺灣言語工具.解析整理.解析錯誤 import 解析錯誤 +from 臺灣言語服務.models import 訓練過渡格式 class Moses模型訓練(程式腳本): @classmethod - def 輸出全部語料(cls): - 資料輸出工具().輸出翻譯語料() + def 輸出全部語料(cls, 語言): + 資料夾 = 翻譯語料資料夾(語言) + makedirs(資料夾, exist_ok=True) + + 對齊語句數量 = 0 + with cls._照資料夾開壓縮檔(資料夾, '對齊母語語句.txt.gz') as 對齊母語語句: + with cls._照資料夾開壓縮檔(資料夾, '對齊外語語句.txt.gz') as 對齊外語語句: + for 一筆 in 訓練過渡格式.objects.filter(文本__isnull=False, 種類='語句'): + print(一筆.文本, file=對齊母語語句) + print(一筆.文本, file=對齊外語語句) + 對齊語句數量 += 1 + if 一筆.外文 is not None: + print(一筆.文本, file=對齊母語語句) + print(一筆.外文, file=對齊外語語句) + 對齊語句數量 += 1 + + 對齊字詞數量 = 0 + with cls._照資料夾開壓縮檔(資料夾, '對齊母語字詞.txt.gz') as 對齊母語字詞: + with cls._照資料夾開壓縮檔(資料夾, '對齊外語字詞.txt.gz') as 對齊外語字詞: + for 一筆 in 訓練過渡格式.objects.filter(文本__isnull=False, 種類='字詞'): + print(一筆.文本, file=對齊母語字詞) + print(一筆.文本, file=對齊外語字詞) + 對齊字詞數量 += 1 + if 一筆.外文 is not None: + print(一筆.文本, file=對齊母語字詞) + print(一筆.外文, file=對齊外語字詞) + 對齊字詞數量 += 1 + + 語句數 = 0 + with cls._照資料夾開壓縮檔(資料夾, '語句文本.txt.gz') as 語句文本: + for 一筆 in 訓練過渡格式.objects.filter(文本__isnull=False, 種類='語句'): + print(一筆.文本, file=語句文本) + 語句數 += 1 + 字詞數 = 0 + with cls._照資料夾開壓縮檔(資料夾, '字詞文本.txt.gz') as 字詞文本: + for 一筆 in 訓練過渡格式.objects.filter(文本__isnull=False, 種類='字詞'): + print(一筆.文本, file=字詞文本) + 字詞數 += 1 + return 對齊語句數量, 對齊字詞數量, 語句數, 字詞數 + + @classmethod + def _照資料夾開壓縮檔(cls, 資料夾, 檔名): + return gzip.open(join(資料夾, 檔名), 'wt') @classmethod def 訓練一个摩西翻譯模型(cls, 語言, 語族): diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" index 1bfa7fa5..74697310 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" @@ -1,5 +1,5 @@ import gzip -from os.path import join, isfile, isdir, exists +from os.path import join, isfile, isdir from shutil import rmtree from django.test.testcases import TestCase @@ -8,6 +8,7 @@ from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 from 臺灣言語服務.models import 訓練過渡格式 +from unittest.case import expectedFailure class 翻譯試驗(TestCase): @@ -22,21 +23,12 @@ def tearDown(self): if isdir(翻譯語料資料夾('臺語')): rmtree(翻譯語料資料夾('臺語')) - def test_無語料就啥物攏無(self): - Moses模型訓練.輸出全部語料() - self.assertFalse(exists(self.目錄)) - - def test_愛有一筆無語料就啥物攏無(self): - self.加一筆外語你好嗎() - Moses模型訓練.輸出全部語料() - self.assertFalse(exists(self.目錄)) - def test_有語句檔案(self): 訓練過渡格式.objects.create( 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料() + Moses模型訓練.輸出全部語料('臺灣話') self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz'))) self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz'))) @@ -45,7 +37,7 @@ def test_有字詞檔案(self): 文本='食飽未?', 外文='你好嗎?', 種類='字詞', **self.公家內容 ) - Moses模型訓練.輸出全部語料() + Moses模型訓練.輸出全部語料('臺灣話') self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊外語字詞.txt.gz'))) self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊母語字詞.txt.gz'))) @@ -55,7 +47,7 @@ def test_有做語言模型的文本(self): 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料() + Moses模型訓練.輸出全部語料('臺灣話') self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz'))) self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '字詞文本.txt.gz'))) @@ -64,7 +56,7 @@ def test_外語母語語句對應檢查對齊語句(self): 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料() + Moses模型訓練.輸出全部語料('臺灣話') self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), sorted(['你好嗎?', '食飽未?']) @@ -79,7 +71,7 @@ def test_外語母語語句對應檢查對齊字詞(self): 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料() + Moses模型訓練.輸出全部語料('臺灣話') self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語字詞.txt.gz')), [] @@ -94,7 +86,7 @@ def test_外語母語語句對應檢查文本(self): 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料() + Moses模型訓練.輸出全部語料('臺灣話') self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), ['食飽未?'] @@ -104,20 +96,12 @@ def test_外語母語語句對應檢查文本(self): [] ) - def test_愛有語句才有輸出(self): - 訓練過渡格式.objects.create( - 文本='食飽未?', 外文='你好嗎?', - 種類='字詞', **self.公家內容 - ) - Moses模型訓練.輸出全部語料() - self.assertFalse(exists(self.目錄)) - def test_一個文本(self): 訓練過渡格式.objects.create( 文本='食飽未?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料() + Moses模型訓練.輸出全部語料('臺灣話') self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), ['食飽未?'] @@ -131,13 +115,54 @@ def test_一個文本(self): ['食飽未?'] ) - def test_一個文本愛有語句才有輸出(self): + def test_檢查正規化數量(self): 訓練過渡格式.objects.create( - 文本='食飽未?', + 文本='食飽未?', 外文='你好嗎?', + 種類='語句', **self.公家內容 + ) + 訓練過渡格式.objects.create( + 文本='食飽未 ?', 外文='你好嗎?', + 種類='語句', **self.公家內容 + ) + 訓練過渡格式.objects.create( + 文本='未', 外文='嗎', + 種類='字詞', **self.公家內容 + ) + 訓練過渡格式.objects.create( + 文本='食飽啦!', + 種類='語句', **self.公家內容 + ) + 訓練過渡格式.objects.create( + 文本='食', + 種類='字詞', **self.公家內容 + ) + 輸出數量 = Moses模型訓練.輸出全部語料('臺灣話') + self.assertEqual(輸出數量, (2 * 2 + 1, 1 * 2 + 1, 2 + 1, 1 + 1)) + + @expectedFailure + def test_檢查翻譯數量(self): + 訓練過渡格式.objects.create( + 文本='食飽未?', 外文='你好嗎?', + 種類='語句', **self.公家內容 + ) + 訓練過渡格式.objects.create( + 文本='食飽未 ?', 外文='你好嗎?', + 種類='語句', **self.公家內容 + ) + 訓練過渡格式.objects.create( + 文本='未', 外文='嗎', + 種類='字詞', **self.公家內容 + ) + 訓練過渡格式.objects.create( + 文本='食飽啦!', + 種類='語句', **self.公家內容 + ) + 訓練過渡格式.objects.create( + 文本='食', 種類='字詞', **self.公家內容 ) - Moses模型訓練.輸出全部語料() - self.assertFalse(exists(self.目錄)) + 輸出數量 = Moses模型訓練.輸出全部語料('臺灣話') + self.assertEqual(輸出數量, (2, 1, 3, 2)) def 得著檔案資料(self, 檔名): with gzip.open(檔名, 'rt') as 檔案: From 57788b47b04eff6850a2f05d7012657c0b68800c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 23 Mar 2018 09:55:58 +0800 Subject: [PATCH 03/59] =?UTF-8?q?=E6=94=B9=E5=82=B3=E8=BC=B8=E5=87=BA?= =?UTF-8?q?=E8=B3=87=E6=96=99=E5=A4=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...256\345\205\203\350\251\246\351\251\227.py" | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" index 74697310..fb9701ab 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" @@ -28,7 +28,7 @@ def test_有語句檔案(self): 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料('臺灣話') + Moses模型訓練.輸出全部語料(self.目錄) self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz'))) self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz'))) @@ -37,7 +37,7 @@ def test_有字詞檔案(self): 文本='食飽未?', 外文='你好嗎?', 種類='字詞', **self.公家內容 ) - Moses模型訓練.輸出全部語料('臺灣話') + Moses模型訓練.輸出全部語料(self.目錄) self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊外語字詞.txt.gz'))) self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '對齊母語字詞.txt.gz'))) @@ -47,7 +47,7 @@ def test_有做語言模型的文本(self): 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料('臺灣話') + Moses模型訓練.輸出全部語料(self.目錄) self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz'))) self.assertTrue(isfile(join(翻譯語料資料夾('臺灣話'), '字詞文本.txt.gz'))) @@ -56,7 +56,7 @@ def test_外語母語語句對應檢查對齊語句(self): 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料('臺灣話') + Moses模型訓練.輸出全部語料(self.目錄) self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), sorted(['你好嗎?', '食飽未?']) @@ -71,7 +71,7 @@ def test_外語母語語句對應檢查對齊字詞(self): 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料('臺灣話') + Moses模型訓練.輸出全部語料(self.目錄) self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語字詞.txt.gz')), [] @@ -86,7 +86,7 @@ def test_外語母語語句對應檢查文本(self): 文本='食飽未?', 外文='你好嗎?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料('臺灣話') + Moses模型訓練.輸出全部語料(self.目錄) self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), ['食飽未?'] @@ -101,7 +101,7 @@ def test_一個文本(self): 文本='食飽未?', 種類='語句', **self.公家內容 ) - Moses模型訓練.輸出全部語料('臺灣話') + Moses模型訓練.輸出全部語料(self.目錄) self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), ['食飽未?'] @@ -136,7 +136,7 @@ def test_檢查正規化數量(self): 文本='食', 種類='字詞', **self.公家內容 ) - 輸出數量 = Moses模型訓練.輸出全部語料('臺灣話') + 輸出數量 = Moses模型訓練.輸出全部語料(self.目錄) self.assertEqual(輸出數量, (2 * 2 + 1, 1 * 2 + 1, 2 + 1, 1 + 1)) @expectedFailure @@ -161,7 +161,7 @@ def test_檢查翻譯數量(self): 文本='食', 種類='字詞', **self.公家內容 ) - 輸出數量 = Moses模型訓練.輸出全部語料('臺灣話') + 輸出數量 = Moses模型訓練.輸出全部語料(self.目錄) self.assertEqual(輸出數量, (2, 1, 3, 2)) def 得著檔案資料(self, 檔名): From 5f0a66ed07a983a06fd0f80760db81cde3470ee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 23 Mar 2018 09:56:38 +0800 Subject: [PATCH 04/59] =?UTF-8?q?=E6=AD=A3=E8=A6=8F=E5=8C=96=E6=8F=90?= =?UTF-8?q?=E6=8E=89=EF=BC=8C=E6=84=9B=E6=89=8D=E5=AE=B6=E5=B7=B1kap?= =?UTF-8?q?=E6=96=87=E6=AA=94=E5=B0=B1=E5=A5=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...56\345\205\203\350\251\246\351\251\227.py" | 26 ------------------- 1 file changed, 26 deletions(-) diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" index fb9701ab..d9cdceb3 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" @@ -8,7 +8,6 @@ from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 from 臺灣言語服務.models import 訓練過渡格式 -from unittest.case import expectedFailure class 翻譯試驗(TestCase): @@ -115,31 +114,6 @@ def test_一個文本(self): ['食飽未?'] ) - def test_檢查正規化數量(self): - 訓練過渡格式.objects.create( - 文本='食飽未?', 外文='你好嗎?', - 種類='語句', **self.公家內容 - ) - 訓練過渡格式.objects.create( - 文本='食飽未 ?', 外文='你好嗎?', - 種類='語句', **self.公家內容 - ) - 訓練過渡格式.objects.create( - 文本='未', 外文='嗎', - 種類='字詞', **self.公家內容 - ) - 訓練過渡格式.objects.create( - 文本='食飽啦!', - 種類='語句', **self.公家內容 - ) - 訓練過渡格式.objects.create( - 文本='食', - 種類='字詞', **self.公家內容 - ) - 輸出數量 = Moses模型訓練.輸出全部語料(self.目錄) - self.assertEqual(輸出數量, (2 * 2 + 1, 1 * 2 + 1, 2 + 1, 1 + 1)) - - @expectedFailure def test_檢查翻譯數量(self): 訓練過渡格式.objects.create( 文本='食飽未?', 外文='你好嗎?', From 901552c4355bc3e8ee04624b8bd88d5b0a6dafe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 23 Mar 2018 10:26:33 +0800 Subject: [PATCH 05/59] =?UTF-8?q?=E4=BF=AE=E8=A9=A6=E9=A9=97=E8=80=8C?= =?UTF-8?q?=E4=B8=94=E5=AF=A6=E4=BD=9C=E5=A5=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...41\345\236\213\350\250\223\347\267\264.py" | 25 ++++++------ .../\350\250\223\347\267\264Moses.py" | 38 +++++-------------- ...56\345\205\203\350\251\246\351\251\227.py" | 8 ++-- 3 files changed, 25 insertions(+), 46 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 3ee8b1b5..27321235 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -24,33 +24,30 @@ class Moses模型訓練(程式腳本): @classmethod - def 輸出全部語料(cls, 語言): - 資料夾 = 翻譯語料資料夾(語言) + def 輸出全部語料(cls, 資料夾): makedirs(資料夾, exist_ok=True) 對齊語句數量 = 0 with cls._照資料夾開壓縮檔(資料夾, '對齊母語語句.txt.gz') as 對齊母語語句: with cls._照資料夾開壓縮檔(資料夾, '對齊外語語句.txt.gz') as 對齊外語語句: - for 一筆 in 訓練過渡格式.objects.filter(文本__isnull=False, 種類='語句'): + for 一筆 in 訓練過渡格式.objects.filter( + 文本__isnull=False, 外文__isnull=False, + 種類='語句' + ): print(一筆.文本, file=對齊母語語句) - print(一筆.文本, file=對齊外語語句) + print(一筆.外文, file=對齊外語語句) 對齊語句數量 += 1 - if 一筆.外文 is not None: - print(一筆.文本, file=對齊母語語句) - print(一筆.外文, file=對齊外語語句) - 對齊語句數量 += 1 對齊字詞數量 = 0 with cls._照資料夾開壓縮檔(資料夾, '對齊母語字詞.txt.gz') as 對齊母語字詞: with cls._照資料夾開壓縮檔(資料夾, '對齊外語字詞.txt.gz') as 對齊外語字詞: - for 一筆 in 訓練過渡格式.objects.filter(文本__isnull=False, 種類='字詞'): + for 一筆 in 訓練過渡格式.objects.filter( + 文本__isnull=False, 外文__isnull=False, + 種類='字詞' + ): print(一筆.文本, file=對齊母語字詞) - print(一筆.文本, file=對齊外語字詞) + print(一筆.外文, file=對齊外語字詞) 對齊字詞數量 += 1 - if 一筆.外文 is not None: - print(一筆.文本, file=對齊母語字詞) - print(一筆.外文, file=對齊外語字詞) - 對齊字詞數量 += 1 語句數 = 0 with cls._照資料夾開壓縮檔(資料夾, '語句文本.txt.gz') as 語句文本: diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index 9f82ecb1..1693995a 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -19,15 +19,7 @@ def add_arguments(self, parser): parser.add_argument( '語言', type=str, - nargs='*', - help='愛訓練的語言' - ) - parser.add_argument( - '--全部語言攏訓練', - dest='全部語言', - default=False, - action='store_const', - const=True, + help='輸出的語言資料夾名' ) parser.add_argument( '--編譯核心數', @@ -37,24 +29,14 @@ def add_arguments(self, parser): ) def handle(self, *args, **參數): - if not 參數['全部語言'] and len(參數['語言']) == 0: - self.stdout.write('請指明愛訓練啥物語言的Moses模型!!') - return - if 參數['全部語言'] and len(參數['語言']) > 0: - self.stdout.write('愛訓練全部語言的Moses模型無?!') - return - if 參數['全部語言']: - 語言陣列 = sorted(settings.HOK8_BU7_SIAT4_TING7.keys()) - else: - 語言陣列 = 參數['語言'] 安裝摩西翻譯佮相關程式.安裝gizapp() 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) - Moses模型訓練.輸出全部語料() - for 一个語言 in 語言陣列: - try: - 服務設定 = settings.HOK8_BU7_SIAT4_TING7[一个語言] - Moses模型訓練.訓練一个摩西翻譯模型(一个語言, 服務設定['語族']) - except FileNotFoundError: - print('訓練「{}」時發生問題!!'.format(一个語言), file=stderr) - traceback.print_exc() - print(file=stderr) + 語言 = 參數['語言'] + 服務設定 = settings.HOK8_BU7_SIAT4_TING7[語言] + Moses模型訓練.輸出全部語料(語言) + try: + Moses模型訓練.訓練一个摩西翻譯模型(語言, 服務設定['語族']) + except FileNotFoundError: + print('訓練時發生問題!!', file=stderr) + traceback.print_exc() + print(file=stderr) diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" index d9cdceb3..d41bf7bf 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\274\270\345\207\272\347\277\273\350\255\257\345\226\256\345\205\203\350\251\246\351\251\227.py" @@ -58,11 +58,11 @@ def test_外語母語語句對應檢查對齊語句(self): Moses模型訓練.輸出全部語料(self.目錄) self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), - sorted(['你好嗎?', '食飽未?']) + sorted(['你好嗎?']) ) self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), - sorted(['食飽未?', '食飽未?']) + sorted(['食飽未?']) ) def test_外語母語語句對應檢查對齊字詞(self): @@ -103,11 +103,11 @@ def test_一個文本(self): Moses模型訓練.輸出全部語料(self.目錄) self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊外語語句.txt.gz')), - ['食飽未?'] + [] ) self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '對齊母語語句.txt.gz')), - ['食飽未?'] + [] ) self.assertEqual( self.得著檔案資料(join(翻譯語料資料夾('臺灣話'), '語句文本.txt.gz')), From 9a239fe8f09d0117873b62c8701f7ef29dcfb235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 23 Mar 2018 10:54:48 +0800 Subject: [PATCH 06/59] =?UTF-8?q?=E8=A8=93=E7=B7=B4=E6=99=82=E6=8C=87?= =?UTF-8?q?=E4=BB=A4=E8=B3=87=E6=96=99=E5=A4=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../management/commands/\350\250\223\347\267\264Moses.py" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index 1693995a..aee54aa6 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -7,6 +7,7 @@ from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 +from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 class Command(BaseCommand): @@ -33,7 +34,7 @@ def handle(self, *args, **參數): 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] 服務設定 = settings.HOK8_BU7_SIAT4_TING7[語言] - Moses模型訓練.輸出全部語料(語言) + Moses模型訓練.輸出全部語料(翻譯語料資料夾(語言)) try: Moses模型訓練.訓練一个摩西翻譯模型(語言, 服務設定['語族']) except FileNotFoundError: From db6c572d0a28f5350c3691b94786bc4e14f57c3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 23 Mar 2018 10:57:21 +0800 Subject: [PATCH 07/59] =?UTF-8?q?=E7=84=A1=E9=96=A3=E7=94=A8=E8=91=97?= =?UTF-8?q?=E7=9A=84=E7=A8=8B=E5=BC=8F=E6=8F=90=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\350\274\270\345\207\272.py" | 69 ------------------- 1 file changed, 69 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\274\270\345\207\272.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\274\270\345\207\272.py" index 476edf5d..623016e6 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\274\270\345\207\272.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\274\270\345\207\272.py" @@ -5,24 +5,14 @@ from django.db.models.query_utils import Q -from 臺灣言語資料庫.資料模型 import 外語表 from 臺灣言語資料庫.欄位資訊 import 語句 from 臺灣言語資料庫.欄位資訊 import 字詞 from 臺灣言語資料庫.資料模型 import 語言腔口表 -from 臺灣言語資料庫.資料模型 import 影音表 from 臺灣言語資料庫.資料模型 import 文本表 from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 class 資料輸出工具: - 翻譯語料檔名 = [ - '對齊外語語句', - '對齊母語語句', - '語句文本', - '對齊外語字詞', - '對齊母語字詞', - '字詞文本', - ] 文本語料檔名 = [ '語句文本', '字詞文本', @@ -36,51 +26,6 @@ def __init__(self, 要求語言=None): self.條件 = Q(語言腔口__語言腔口=要求語言) self.腔口條件 = Q(語言腔口=要求語言) - def 輸出翻譯語料(self): - 檔案表 = self._建立檔案表( - 語言腔口表.揣出有語句文本的語言腔口().filter(self.腔口條件), self.翻譯語料檔名 - ) - for 外語 in 外語表.全部外語資料().filter(self.條件): - try: - 檔案表欄位 = 檔案表[外語.語言腔口.語言腔口][外語.種類.種類] - except KeyError: - pass - else: - self._加文本翻譯語料( - 檔案表欄位, [外語.分詞資料()], 外語.翻譯文本, '文本' - ) - for 影音關係 in 外語.翻譯影音.all(): - 影音 = 影音關係.影音 - self._加文本翻譯語料( - 檔案表欄位, [外語.分詞資料()], 影音.影音文本, '文本' - ) - - for 影音 in 影音表.源頭的影音資料().filter(self.條件): - try: - 檔案表欄位 = 檔案表[影音.語言腔口.語言腔口][影音.種類.種類] - except KeyError: - pass - else: - self._加文本翻譯語料( - 檔案表欄位, [], 影音.影音文本, '文本' - ) - for 文本 in 文本表.源頭的文本資料().filter(self.條件): - try: - 檔案表欄位 = 檔案表[文本.語言腔口.語言腔口][文本.種類.種類] - except KeyError: - pass - else: - 分詞資料 = 文本.分詞資料() - if 文本.文本校對.exists(): - self._加文本翻譯語料( - 檔案表欄位, [分詞資料], 文本.文本校對, '新文本' - ) - else: - print(分詞資料, file=檔案表欄位['對齊外語']) - print(分詞資料, file=檔案表欄位['對齊母語']) - print(分詞資料, file=檔案表欄位['文本']) - self._關檔案表的檔案(檔案表) - def 輸出文本語料(self): 檔案表 = self._建立檔案表( 語言腔口表.揣出有文本的語言腔口().filter(self.腔口條件), self.文本語料檔名 @@ -109,17 +54,3 @@ def _關檔案表的檔案(self, 檔案表): for 種類內檔案 in 腔檔案.values(): for 一个檔案 in 種類內檔案.values(): 一个檔案.close() - - def _加文本翻譯語料(self, 檔案表, 目前資料, 關係表, 文本物件名): - for 文本關係 in 關係表.all(): - 文本 = getattr(文本關係, 文本物件名) - 分詞資料 = 文本.分詞資料() - 目前資料.append(分詞資料) - if 文本.文本校對.exists(): - self._加文本翻譯語料(檔案表, 目前資料, 文本.文本校對, '新文本') - else: - print('\n'.join(目前資料), file=檔案表['對齊外語']) - for _ in 目前資料: - print(分詞資料, file=檔案表['對齊母語']) - print(分詞資料, file=檔案表['文本']) - 目前資料.pop() From a9e7c4331c6bc8af8260c00fe435089d5fe4b395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 23 Mar 2018 12:27:34 +0800 Subject: [PATCH 08/59] =?UTF-8?q?=E5=8A=A0=E8=A8=98=E6=86=B6=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 1 + 1 file changed, 1 insertion(+) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 27321235..8f6ac7ec 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -83,6 +83,7 @@ def 訓練一个摩西翻譯模型(cls, 語言, 語族): 模型資料夾, 連紲詞長度=3, 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, + 使用記憶體量='80%', 刣掉暫存檔=False, ) From f85fdd35deef012a00668d5edab07b06fa81bcdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 23 Mar 2018 16:36:44 +0800 Subject: [PATCH 09/59] =?UTF-8?q?lm=E7=9A=84=E9=83=A8=E4=BB=BD=E5=98=9B?= =?UTF-8?q?=E6=94=B9=E5=81=9A80%=EF=BC=8Cci=E7=9C=8B=E6=9C=83=E9=81=8E?= =?UTF-8?q?=E8=A2=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 8f6ac7ec..f4a7f330 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -157,7 +157,7 @@ def _文本檔轉模型物件(cls, 語言資料夾, 母語辭典檔名): 母語辭典檔名, join(語言資料夾, '語言模型資料夾'), 連紲詞長度=3, - 使用記憶體量='20%', + 使用記憶體量='80%', ) return KenLM語言模型(模型檔) From 4f508936dfddc273d745bb71b5bac88878191561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 23 Mar 2018 16:44:08 +0800 Subject: [PATCH 10/59] =?UTF-8?q?=E6=94=B9=E5=81=9A=E4=B8=80=E8=88=AC?= =?UTF-8?q?=E7=BF=BB=E8=AD=AF=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\241\345\236\213\350\250\223\347\267\264.py" | 17 ++++++++++++++++- .../commands/\350\250\223\347\267\264Moses.py" | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index f4a7f330..dafd7ba4 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -66,7 +66,22 @@ def _照資料夾開壓縮檔(cls, 資料夾, 檔名): return gzip.open(join(資料夾, 檔名), 'wt') @classmethod - def 訓練一个摩西翻譯模型(cls, 語言, 語族): + def 訓練翻譯做母語模型(cls, 語言): + 語料資料夾 = 翻譯語料資料夾(語言) + 模型資料夾 = 翻譯模型資料夾(語言) + 平行華語, 平行母語, 母語文本 = cls._原始語料(語料資料夾) + 模型訓練 = 摩西翻譯模型訓練() + 模型訓練.訓練( + 平行華語, 平行母語, 母語文本, + 模型資料夾, + 連紲詞長度=3, + 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, + 使用記憶體量='80%', + 刣掉暫存檔=False, + ) + + @classmethod + def 訓練正規化模型(cls, 語言, 語族): 語料資料夾 = 翻譯語料資料夾(語言) 模型資料夾 = 翻譯模型資料夾(語言) makedirs(模型資料夾, exist_ok=True) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index aee54aa6..a18535b8 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -36,7 +36,7 @@ def handle(self, *args, **參數): 服務設定 = settings.HOK8_BU7_SIAT4_TING7[語言] Moses模型訓練.輸出全部語料(翻譯語料資料夾(語言)) try: - Moses模型訓練.訓練一个摩西翻譯模型(語言, 服務設定['語族']) + Moses模型訓練.訓練翻譯做母語模型(語言, 服務設定['語族']) except FileNotFoundError: print('訓練時發生問題!!', file=stderr) traceback.print_exc() From 03687fbbedd9469072f75b65e05dfc027eac7501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 23 Mar 2018 17:00:16 +0800 Subject: [PATCH 11/59] =?UTF-8?q?=E5=8A=A0=E7=BF=BB=E5=81=9A=E6=AF=8D?= =?UTF-8?q?=E8=AA=9E=E4=BD=AE=E5=A4=96=E6=96=87=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 1 + tox.ini | 8 ++++ ...41\345\236\213\350\250\223\347\267\264.py" | 24 +++++++++-- ...57\345\201\232\345\244\226\346\226\207.py" | 43 +++++++++++++++++++ ...41\345\236\213\350\267\257\345\276\221.py" | 12 +++++- 5 files changed, 83 insertions(+), 5 deletions(-) create mode 100644 "\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" diff --git a/.travis.yml b/.travis.yml index 22d6af31..36ad7359 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ env: - TOX_ENV=hap8sing5-tsi3giam7 - TOX_ENV=hap8sing5-hun3lian7 - TOX_ENV=huan1ik8 +- TOX_ENV=huan1ik8-gua7bun5 - TOX_ENV=flake8 addons: apt: diff --git a/tox.ini b/tox.ini index 76cad282..7650217f 100644 --- a/tox.ini +++ b/tox.ini @@ -32,6 +32,14 @@ commands= coverage run --source=臺灣言語服務 manage.py 訓練Moses 詔安腔 coverage run --source=臺灣言語服務 -a manage.py test 試驗.翻譯.test詔安腔翻譯整合試驗.詔安腔翻譯整合試驗 +[testenv:huan1ik8-gua7bun5] +passenv = * +deps = + coverage +commands= + python manage.py migrate + coverage run --source=臺灣言語服務 manage.py 訓練Moses翻譯做外文 詔安腔 + [testenv:flake8] deps = flake8 diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index dafd7ba4..2e34e00e 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -19,6 +19,9 @@ from 臺灣言語服務.資料模型路徑 import 翻譯模型資料夾 from 臺灣言語工具.解析整理.解析錯誤 import 解析錯誤 from 臺灣言語服務.models import 訓練過渡格式 +from 臺灣言語服務.資料模型路徑 import 翻譯做母語模型資料夾 +from 臺灣言語服務.資料模型路徑 import 翻譯做外文模型資料夾 +from 臺灣言語服務.資料模型路徑 import 翻譯正規化模型資料夾 class Moses模型訓練(程式腳本): @@ -68,7 +71,7 @@ def _照資料夾開壓縮檔(cls, 資料夾, 檔名): @classmethod def 訓練翻譯做母語模型(cls, 語言): 語料資料夾 = 翻譯語料資料夾(語言) - 模型資料夾 = 翻譯模型資料夾(語言) + 模型資料夾 = 翻譯做母語模型資料夾(語言) 平行華語, 平行母語, 母語文本 = cls._原始語料(語料資料夾) 模型訓練 = 摩西翻譯模型訓練() 模型訓練.訓練( @@ -79,11 +82,26 @@ def 訓練翻譯做母語模型(cls, 語言): 使用記憶體量='80%', 刣掉暫存檔=False, ) - + + @classmethod + def 訓練翻譯做外文模型(cls, 語言): + 語料資料夾 = 翻譯做母語模型資料夾(語言) + 模型資料夾 = 翻譯做外文模型資料夾(語言) + 平行華語, 平行母語, 母語文本 = cls._原始語料(語料資料夾) + 模型訓練 = 摩西翻譯模型訓練() + 模型訓練.訓練( + 平行母語, 平行華語, 母語文本, + 模型資料夾, + 連紲詞長度=3, + 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, + 使用記憶體量='80%', + 刣掉暫存檔=False, + ) + @classmethod def 訓練正規化模型(cls, 語言, 語族): 語料資料夾 = 翻譯語料資料夾(語言) - 模型資料夾 = 翻譯模型資料夾(語言) + 模型資料夾 = 翻譯正規化模型資料夾(語言) makedirs(模型資料夾, exist_ok=True) if 語族 == '漢語': 平行華語, 平行母語, 母語文本 = cls._漢語語料訓練(語料資料夾, 模型資料夾) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" new file mode 100644 index 00000000..98db05dc --- /dev/null +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" @@ -0,0 +1,43 @@ +from sys import stderr +import traceback + +from django.conf import settings +from django.core.management.base import BaseCommand + + +from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 +from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 +from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 + + +class Command(BaseCommand): + help = ( + '訓練Moses模型,母語翻譯到外文。\n' + '裝Moses程式,掠而且編譯,可能愛半點鐘以上' + ) + + def add_arguments(self, parser): + parser.add_argument( + '語言', + type=str, + help='輸出的語言資料夾名' + ) + parser.add_argument( + '--編譯核心數', + dest='核心數', + default=4, + type=int, + ) + + def handle(self, *args, **參數): + 安裝摩西翻譯佮相關程式.安裝gizapp() + 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) + 語言 = 參數['語言'] + 服務設定 = settings.HOK8_BU7_SIAT4_TING7[語言] + Moses模型訓練.輸出全部語料(翻譯語料資料夾(語言)) + try: + Moses模型訓練.訓練翻譯做外文模型(語言, 服務設定['語族']) + except FileNotFoundError: + print('訓練時發生問題!!', file=stderr) + traceback.print_exc() + print(file=stderr) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\263\207\346\226\231\346\250\241\345\236\213\350\267\257\345\276\221.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\263\207\346\226\231\346\250\241\345\236\213\350\267\257\345\276\221.py" index 542db443..a78b9a2e 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\263\207\346\226\231\346\250\241\345\236\213\350\267\257\345\276\221.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\263\207\346\226\231\346\250\241\345\236\213\350\267\257\345\276\221.py" @@ -12,8 +12,16 @@ def 翻譯語料資料夾(語言): return join(資料路徑, 語言, '翻譯語料') -def 翻譯模型資料夾(語言): - return join(資料路徑, 語言, '翻譯模型') +def 翻譯做母語模型資料夾(語言): + return join(資料路徑, 語言, '翻譯做母語模型') + + +def 翻譯做外文模型資料夾(語言): + return join(資料路徑, 語言, '翻譯做外文模型') + + +def 翻譯正規化模型資料夾(語言): + return join(資料路徑, 語言, '翻譯做外文模型') def 合成模型資料夾(語言): From 274a86d6e666e3afd4906ee451c852250b1416a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Wed, 4 Apr 2018 10:30:04 +0800 Subject: [PATCH 12/59] =?UTF-8?q?=E6=8F=90=E6=8E=89=E7=84=A1=E7=94=A8?= =?UTF-8?q?=E8=91=97=E7=9A=84import?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 1 - 1 file changed, 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 2e34e00e..2c64be1d 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -16,7 +16,6 @@ from 臺灣言語工具.斷詞.拄好長度辭典揣詞 import 拄好長度辭典揣詞 from 臺灣言語工具.斷詞.語言模型揀集內組 import 語言模型揀集內組 from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 -from 臺灣言語服務.資料模型路徑 import 翻譯模型資料夾 from 臺灣言語工具.解析整理.解析錯誤 import 解析錯誤 from 臺灣言語服務.models import 訓練過渡格式 from 臺灣言語服務.資料模型路徑 import 翻譯做母語模型資料夾 From 83f259e0948a4cf3ec24a0eb00a5327b834e498e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Wed, 4 Apr 2018 11:00:07 +0800 Subject: [PATCH 13/59] =?UTF-8?q?=E8=AA=9E=E6=97=8F=E6=9A=AB=E6=99=82?= =?UTF-8?q?=E7=94=A8=E8=A2=82=E8=91=97=E7=9F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../management/commands/\350\250\223\347\267\264Moses.py" | 4 +--- ...77\273\350\255\257\345\201\232\345\244\226\346\226\207.py" | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index a18535b8..54f4b6d0 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -1,7 +1,6 @@ from sys import stderr import traceback -from django.conf import settings from django.core.management.base import BaseCommand @@ -33,10 +32,9 @@ def handle(self, *args, **參數): 安裝摩西翻譯佮相關程式.安裝gizapp() 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] - 服務設定 = settings.HOK8_BU7_SIAT4_TING7[語言] Moses模型訓練.輸出全部語料(翻譯語料資料夾(語言)) try: - Moses模型訓練.訓練翻譯做母語模型(語言, 服務設定['語族']) + Moses模型訓練.訓練翻譯做母語模型(語言) except FileNotFoundError: print('訓練時發生問題!!', file=stderr) traceback.print_exc() diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" index 98db05dc..69eab81f 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" @@ -1,7 +1,6 @@ from sys import stderr import traceback -from django.conf import settings from django.core.management.base import BaseCommand @@ -33,10 +32,9 @@ def handle(self, *args, **參數): 安裝摩西翻譯佮相關程式.安裝gizapp() 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] - 服務設定 = settings.HOK8_BU7_SIAT4_TING7[語言] Moses模型訓練.輸出全部語料(翻譯語料資料夾(語言)) try: - Moses模型訓練.訓練翻譯做外文模型(語言, 服務設定['語族']) + Moses模型訓練.訓練翻譯做外文模型(語言) except FileNotFoundError: print('訓練時發生問題!!', file=stderr) traceback.print_exc() From a1229e8c97b210d17730d6dc2465e2b1fb2e2f41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 5 Apr 2018 21:57:53 +0800 Subject: [PATCH 14/59] =?UTF-8?q?=E9=80=99=E9=A6=AC=E5=B9=B2=E7=84=A6?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E8=AA=9E=E8=A8=80=E7=88=BE=E7=88=BE=EF=BC=8C?= =?UTF-8?q?=E6=89=80=E4=BB=A5=E4=BE=8B=E5=A4=96=E5=B0=B1=E4=BA=88=E5=87=BA?= =?UTF-8?q?=E5=8E=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commands/\350\250\223\347\267\264Moses.py" | 10 +--------- ...350\255\257\345\201\232\345\244\226\346\226\207.py" | 10 +--------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index 54f4b6d0..eaa2c784 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -1,6 +1,3 @@ -from sys import stderr -import traceback - from django.core.management.base import BaseCommand @@ -33,9 +30,4 @@ def handle(self, *args, **參數): 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] Moses模型訓練.輸出全部語料(翻譯語料資料夾(語言)) - try: - Moses模型訓練.訓練翻譯做母語模型(語言) - except FileNotFoundError: - print('訓練時發生問題!!', file=stderr) - traceback.print_exc() - print(file=stderr) + Moses模型訓練.訓練翻譯做母語模型(語言) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" index 69eab81f..c56c6c14 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" @@ -1,6 +1,3 @@ -from sys import stderr -import traceback - from django.core.management.base import BaseCommand @@ -33,9 +30,4 @@ def handle(self, *args, **參數): 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] Moses模型訓練.輸出全部語料(翻譯語料資料夾(語言)) - try: - Moses模型訓練.訓練翻譯做外文模型(語言) - except FileNotFoundError: - print('訓練時發生問題!!', file=stderr) - traceback.print_exc() - print(file=stderr) + Moses模型訓練.訓練翻譯做外文模型(語言) From ce53085b707f838c92f9e4855419645942f38907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 5 Apr 2018 22:02:51 +0800 Subject: [PATCH 15/59] =?UTF-8?q?=E6=94=B9=E8=A8=93=E7=B7=B4=E4=BB=8B?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...346\250\241\345\236\213\350\250\223\347\267\264.py" | 10 ++-------- .../commands/\350\250\223\347\267\264Moses.py" | 7 +++++-- ...350\255\257\345\201\232\345\244\226\346\226\207.py" | 7 +++++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 2c64be1d..61499e80 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -18,8 +18,6 @@ from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 from 臺灣言語工具.解析整理.解析錯誤 import 解析錯誤 from 臺灣言語服務.models import 訓練過渡格式 -from 臺灣言語服務.資料模型路徑 import 翻譯做母語模型資料夾 -from 臺灣言語服務.資料模型路徑 import 翻譯做外文模型資料夾 from 臺灣言語服務.資料模型路徑 import 翻譯正規化模型資料夾 @@ -68,9 +66,7 @@ def _照資料夾開壓縮檔(cls, 資料夾, 檔名): return gzip.open(join(資料夾, 檔名), 'wt') @classmethod - def 訓練翻譯做母語模型(cls, 語言): - 語料資料夾 = 翻譯語料資料夾(語言) - 模型資料夾 = 翻譯做母語模型資料夾(語言) + def 訓練翻譯做母語模型(cls, 語料資料夾, 模型資料夾): 平行華語, 平行母語, 母語文本 = cls._原始語料(語料資料夾) 模型訓練 = 摩西翻譯模型訓練() 模型訓練.訓練( @@ -83,9 +79,7 @@ def 訓練翻譯做母語模型(cls, 語言): ) @classmethod - def 訓練翻譯做外文模型(cls, 語言): - 語料資料夾 = 翻譯做母語模型資料夾(語言) - 模型資料夾 = 翻譯做外文模型資料夾(語言) + def 訓練翻譯做外文模型(cls, 語料資料夾, 模型資料夾): 平行華語, 平行母語, 母語文本 = cls._原始語料(語料資料夾) 模型訓練 = 摩西翻譯模型訓練() 模型訓練.訓練( diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index eaa2c784..4f0c7bd5 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -4,6 +4,7 @@ from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 +from 臺灣言語服務.資料模型路徑 import 翻譯做母語模型資料夾 class Command(BaseCommand): @@ -29,5 +30,7 @@ def handle(self, *args, **參數): 安裝摩西翻譯佮相關程式.安裝gizapp() 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] - Moses模型訓練.輸出全部語料(翻譯語料資料夾(語言)) - Moses模型訓練.訓練翻譯做母語模型(語言) + 語料資料夾 = 翻譯語料資料夾(語言) + 模型資料夾 = 翻譯做母語模型資料夾(語言) + Moses模型訓練.輸出全部語料(語料資料夾) + Moses模型訓練.訓練翻譯做母語模型(語料資料夾, 模型資料夾) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" index c56c6c14..8f4f24ba 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" @@ -4,6 +4,7 @@ from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 +from 臺灣言語服務.資料模型路徑 import 翻譯做外文模型資料夾 class Command(BaseCommand): @@ -29,5 +30,7 @@ def handle(self, *args, **參數): 安裝摩西翻譯佮相關程式.安裝gizapp() 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] - Moses模型訓練.輸出全部語料(翻譯語料資料夾(語言)) - Moses模型訓練.訓練翻譯做外文模型(語言) + 語料資料夾 = 翻譯語料資料夾(語言) + 模型資料夾 = 翻譯做外文模型資料夾(語言) + Moses模型訓練.輸出全部語料(語料資料夾) + Moses模型訓練.訓練翻譯做外文模型(語料資料夾, 模型資料夾) From 6155727c8b8d1caf11f43af0733af350bf625bdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 5 Apr 2018 22:14:09 +0800 Subject: [PATCH 16/59] =?UTF-8?q?=E5=85=88=E6=9A=AB=E6=99=82=E7=94=A8?= =?UTF-8?q?=E5=B9=B3=E8=A1=8C=E8=8F=AF=E8=AA=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 61499e80..132a826e 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -80,10 +80,10 @@ def 訓練翻譯做母語模型(cls, 語料資料夾, 模型資料夾): @classmethod def 訓練翻譯做外文模型(cls, 語料資料夾, 模型資料夾): - 平行華語, 平行母語, 母語文本 = cls._原始語料(語料資料夾) + 平行華語, 平行母語, _母語文本 = cls._原始語料(語料資料夾) 模型訓練 = 摩西翻譯模型訓練() 模型訓練.訓練( - 平行母語, 平行華語, 母語文本, + 平行母語, 平行華語, 平行華語, 模型資料夾, 連紲詞長度=3, 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, From a1a4f03bda5b87bcc93ccd5b4e18facfd9cad48b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 6 Apr 2018 11:33:44 +0800 Subject: [PATCH 17/59] =?UTF-8?q?=E5=A4=96=E6=96=87=E5=8A=A0=E6=96=B7?= =?UTF-8?q?=E8=A9=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...41\345\236\213\350\250\223\347\267\264.py" | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 132a826e..37bcbdb6 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -19,6 +19,7 @@ from 臺灣言語工具.解析整理.解析錯誤 import 解析錯誤 from 臺灣言語服務.models import 訓練過渡格式 from 臺灣言語服務.資料模型路徑 import 翻譯正規化模型資料夾 +from setuptools.py31compat import TemporaryDirectory class Moses模型訓練(程式腳本): @@ -81,15 +82,17 @@ def 訓練翻譯做母語模型(cls, 語料資料夾, 模型資料夾): @classmethod def 訓練翻譯做外文模型(cls, 語料資料夾, 模型資料夾): 平行華語, 平行母語, _母語文本 = cls._原始語料(語料資料夾) - 模型訓練 = 摩西翻譯模型訓練() - 模型訓練.訓練( - 平行母語, 平行華語, 平行華語, - 模型資料夾, - 連紲詞長度=3, - 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, - 使用記憶體量='80%', - 刣掉暫存檔=False, - ) + with TemporaryDirectory as 暫存資料夾: + 平行斷詞華語 = cls._外文斷詞(平行華語, 暫存資料夾) + 模型訓練 = 摩西翻譯模型訓練() + 模型訓練.訓練( + 平行母語, 平行華語, 平行華語, + 模型資料夾, + 連紲詞長度=3, + 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, + 使用記憶體量='80%', + 刣掉暫存檔=False, + ) @classmethod def 訓練正規化模型(cls, 語言, 語族): @@ -207,3 +210,16 @@ def _原始語料(cls, 語言資料夾): @classmethod def _南島語語料訓練(cls, 語言資料夾, 翻譯模型資料夾): return cls._漢語語料訓練(語言資料夾, 翻譯模型資料夾) + + @classmethod + def _外文斷詞(cls, 語料陣列, 暫存資料夾): + 斷詞檔名 = join(暫存資料夾, basename(語料陣列)) + with gzip.open(斷詞檔名, 'wt') as 寫檔: + for 原本檔案 in 語料陣列: + for 一逝 in cls._讀檔案(原本檔案): + 斷詞結果 = [] + 句物件 = 拆文分析器.分詞句物件(一逝) + for 詞條, 詞性 in 國教院斷詞用戶端.語句斷詞做陣列(句物件): + 斷詞結果.append("{}({})".format(詞條, 詞性)) + print(' '.join(斷詞結果), file=寫檔) + return [斷詞檔名] From 168373d300e2a8b212ab960b171416826cd927fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 6 Apr 2018 11:34:47 +0800 Subject: [PATCH 18/59] =?UTF-8?q?=E8=A3=9Cimport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 37bcbdb6..f72c8dd4 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -3,6 +3,8 @@ from os import makedirs from os.path import join, basename +from setuptools.py31compat import TemporaryDirectory + from 臺灣言語工具.翻譯.摩西工具.摩西翻譯模型訓練 import 摩西翻譯模型訓練 from 臺灣言語工具.翻譯.摩西工具.語句編碼器 import 語句編碼器 @@ -19,7 +21,7 @@ from 臺灣言語工具.解析整理.解析錯誤 import 解析錯誤 from 臺灣言語服務.models import 訓練過渡格式 from 臺灣言語服務.資料模型路徑 import 翻譯正規化模型資料夾 -from setuptools.py31compat import TemporaryDirectory +from 臺灣言語工具.斷詞.國教院斷詞用戶端 import 國教院斷詞用戶端 class Moses模型訓練(程式腳本): @@ -86,7 +88,7 @@ def 訓練翻譯做外文模型(cls, 語料資料夾, 模型資料夾): 平行斷詞華語 = cls._外文斷詞(平行華語, 暫存資料夾) 模型訓練 = 摩西翻譯模型訓練() 模型訓練.訓練( - 平行母語, 平行華語, 平行華語, + 平行母語, 平行斷詞華語, 平行斷詞華語, 模型資料夾, 連紲詞長度=3, 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, From 4bbadbe1801482fe7bbbf4bd457aafc1babf0d56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 6 Apr 2018 11:44:24 +0800 Subject: [PATCH 19/59] =?UTF-8?q?=E4=BF=AE=E6=9A=AB=E5=AD=98=E8=B3=87?= =?UTF-8?q?=E6=96=99=E5=A4=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index f72c8dd4..2b09a632 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -84,7 +84,7 @@ def 訓練翻譯做母語模型(cls, 語料資料夾, 模型資料夾): @classmethod def 訓練翻譯做外文模型(cls, 語料資料夾, 模型資料夾): 平行華語, 平行母語, _母語文本 = cls._原始語料(語料資料夾) - with TemporaryDirectory as 暫存資料夾: + with TemporaryDirectory() as 暫存資料夾: 平行斷詞華語 = cls._外文斷詞(平行華語, 暫存資料夾) 模型訓練 = 摩西翻譯模型訓練() 模型訓練.訓練( From cdb6f8a8ad5c151e9d66eb5a4603aec22bd12286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 6 Apr 2018 11:49:29 +0800 Subject: [PATCH 20/59] =?UTF-8?q?=E4=BF=AE=E6=AA=94=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 2b09a632..e65e1b5b 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -215,7 +215,7 @@ def _南島語語料訓練(cls, 語言資料夾, 翻譯模型資料夾): @classmethod def _外文斷詞(cls, 語料陣列, 暫存資料夾): - 斷詞檔名 = join(暫存資料夾, basename(語料陣列)) + 斷詞檔名 = join(暫存資料夾, '外文斷詞.txt.gz') with gzip.open(斷詞檔名, 'wt') as 寫檔: for 原本檔案 in 語料陣列: for 一逝 in cls._讀檔案(原本檔案): From 625e34b80427f19f7587771f9ae60768e473bb72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 6 Apr 2018 11:52:38 +0800 Subject: [PATCH 21/59] =?UTF-8?q?=E6=8F=9B=E5=81=9A=E8=AA=9E=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index e65e1b5b..6b564590 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -221,7 +221,7 @@ def _外文斷詞(cls, 語料陣列, 暫存資料夾): for 一逝 in cls._讀檔案(原本檔案): 斷詞結果 = [] 句物件 = 拆文分析器.分詞句物件(一逝) - for 詞條, 詞性 in 國教院斷詞用戶端.語句斷詞做陣列(句物件): + for 詞條, 詞性 in 國教院斷詞用戶端.語句斷詞做陣列(句物件.看型(' ', ' ')): 斷詞結果.append("{}({})".format(詞條, 詞性)) print(' '.join(斷詞結果), file=寫檔) return [斷詞檔名] From defe20fb59bcbd7588117549eb1945474903d875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Sat, 7 Apr 2018 08:24:20 +0800 Subject: [PATCH 22/59] =?UTF-8?q?=E5=8A=A0=E9=80=A3=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=BA=88=E5=88=86=E6=9E=90=E5=99=A8=E8=AA=8D=E5=AE=9A=E6=98=AF?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E8=A9=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 6b564590..413e842b 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -222,6 +222,6 @@ def _外文斷詞(cls, 語料陣列, 暫存資料夾): 斷詞結果 = [] 句物件 = 拆文分析器.分詞句物件(一逝) for 詞條, 詞性 in 國教院斷詞用戶端.語句斷詞做陣列(句物件.看型(' ', ' ')): - 斷詞結果.append("{}({})".format(詞條, 詞性)) + 斷詞結果.append("{}-(-{}-)".format(詞條, 詞性)) print(' '.join(斷詞結果), file=寫檔) return [斷詞檔名] From 47506897ba7fc226a8f126702d8afe1efbc3402a Mon Sep 17 00:00:00 2001 From: fafoy Date: Tue, 24 Apr 2018 18:01:32 +0800 Subject: [PATCH 23/59] =?UTF-8?q?=E6=94=B9=E7=84=A1=E4=BB=9D=E7=9A=84?= =?UTF-8?q?=E8=A8=98=E6=86=B6=E9=AB=94=E4=BD=BF=E7=94=A8=E9=87=8F=EF=BC=8C?= =?UTF-8?q?=E7=9C=8B=E6=8C=89=E6=80=8Eci=E6=9C=83=E9=81=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 413e842b..d18e81f9 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -77,7 +77,7 @@ def 訓練翻譯做母語模型(cls, 語料資料夾, 模型資料夾): 模型資料夾, 連紲詞長度=3, 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, - 使用記憶體量='80%', + 使用記憶體量='90%', 刣掉暫存檔=False, ) @@ -92,7 +92,7 @@ def 訓練翻譯做外文模型(cls, 語料資料夾, 模型資料夾): 模型資料夾, 連紲詞長度=3, 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, - 使用記憶體量='80%', + 使用記憶體量='60%', 刣掉暫存檔=False, ) From 8c7374d563df8578d1c7cbdcd1f527720d6205e0 Mon Sep 17 00:00:00 2001 From: fafoy Date: Tue, 24 Apr 2018 18:49:20 +0800 Subject: [PATCH 24/59] =?UTF-8?q?=E6=94=B9=E8=BD=89=E4=BE=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index d18e81f9..413e842b 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -77,7 +77,7 @@ def 訓練翻譯做母語模型(cls, 語料資料夾, 模型資料夾): 模型資料夾, 連紲詞長度=3, 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, - 使用記憶體量='90%', + 使用記憶體量='80%', 刣掉暫存檔=False, ) @@ -92,7 +92,7 @@ def 訓練翻譯做外文模型(cls, 語料資料夾, 模型資料夾): 模型資料夾, 連紲詞長度=3, 編碼器=語句編碼器(), # 若用著Unicdoe擴充就需要, - 使用記憶體量='60%', + 使用記憶體量='80%', 刣掉暫存檔=False, ) From 1e599a22ab3bda57859fb978471c463730266265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 27 Apr 2018 11:46:38 +0800 Subject: [PATCH 25/59] =?UTF-8?q?=E5=BA=95=E7=B7=9A=E4=BD=87=E5=81=9A?= =?UTF-8?q?=E8=A9=9E=E6=99=82=E6=9C=83=E6=8B=84=E8=91=97=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 臺灣言語工具.解析整理.解析錯誤.解析錯誤: 「有-(-V_2-)」、「有-(-V_2-)」超過一e5詞 --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 413e842b..1fd821d2 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -222,6 +222,8 @@ def _外文斷詞(cls, 語料陣列, 暫存資料夾): 斷詞結果 = [] 句物件 = 拆文分析器.分詞句物件(一逝) for 詞條, 詞性 in 國教院斷詞用戶端.語句斷詞做陣列(句物件.看型(' ', ' ')): - 斷詞結果.append("{}-(-{}-)".format(詞條, 詞性)) + 斷詞結果.append("{}-(-{}-)".format( + 詞條.replace('V_2', 'VV2'), 詞性 + )) print(' '.join(斷詞結果), file=寫檔) return [斷詞檔名] From 1bfa238e71c387a7af5aa50e0b14e7168d14ad1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 27 Apr 2018 12:19:45 +0800 Subject: [PATCH 26/59] =?UTF-8?q?=E6=84=9B=E6=94=B9=E8=A9=9E=E6=80=A7?= =?UTF-8?q?=E6=89=8D=E8=91=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 1fd821d2..b2c12665 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -223,7 +223,7 @@ def _外文斷詞(cls, 語料陣列, 暫存資料夾): 句物件 = 拆文分析器.分詞句物件(一逝) for 詞條, 詞性 in 國教院斷詞用戶端.語句斷詞做陣列(句物件.看型(' ', ' ')): 斷詞結果.append("{}-(-{}-)".format( - 詞條.replace('V_2', 'VV2'), 詞性 + 詞條, 詞性.replace('V_2', 'VV2') )) print(' '.join(斷詞結果), file=寫檔) return [斷詞檔名] From a207fef8ce39955717db822489b411dc2bad2e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Tue, 1 May 2018 09:08:41 +0800 Subject: [PATCH 27/59] =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=9C=89=E6=B3=95?= =?UTF-8?q?=E5=BA=A6=E8=99=95=E7=90=86V=5F2=E7=9F=A3=EF=BC=8C=E5=85=8D?= =?UTF-8?q?=E6=94=B9=E5=81=9A=E5=88=A5=E7=9A=84=E5=AD=97=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index b2c12665..413e842b 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -222,8 +222,6 @@ def _外文斷詞(cls, 語料陣列, 暫存資料夾): 斷詞結果 = [] 句物件 = 拆文分析器.分詞句物件(一逝) for 詞條, 詞性 in 國教院斷詞用戶端.語句斷詞做陣列(句物件.看型(' ', ' ')): - 斷詞結果.append("{}-(-{}-)".format( - 詞條, 詞性.replace('V_2', 'VV2') - )) + 斷詞結果.append("{}-(-{}-)".format(詞條, 詞性)) print(' '.join(斷詞結果), file=寫檔) return [斷詞檔名] From 7eaadadbafdbd346b324d639b68e2e10c5c8154c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Mon, 14 May 2018 17:01:44 +0800 Subject: [PATCH 28/59] =?UTF-8?q?=E5=85=B1=E6=AD=A3=E8=A6=8F=E5=8C=96?= =?UTF-8?q?=E7=8D=A8=E7=AB=8B=E5=87=BA=E4=BE=86=E8=A9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 1 + tox.ini | 9 ++++++++- ...7\346\225\264\345\220\210\350\251\246\351\251\227.py" | 7 ++----- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index faa9f380..9aa578bb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ env: - TOX_ENV=hap8sing5-hun3lian7 - TOX_ENV=huan1ik8 - TOX_ENV=huan1ik8-gua7bun5 +- TOX_ENV=huan1ik8-tsing3kui1 - TOX_ENV=flake8 addons: apt: diff --git a/tox.ini b/tox.ini index 7650217f..373ca944 100644 --- a/tox.ini +++ b/tox.ini @@ -30,7 +30,6 @@ deps = commands= python manage.py migrate coverage run --source=臺灣言語服務 manage.py 訓練Moses 詔安腔 - coverage run --source=臺灣言語服務 -a manage.py test 試驗.翻譯.test詔安腔翻譯整合試驗.詔安腔翻譯整合試驗 [testenv:huan1ik8-gua7bun5] passenv = * @@ -40,6 +39,14 @@ commands= python manage.py migrate coverage run --source=臺灣言語服務 manage.py 訓練Moses翻譯做外文 詔安腔 +[testenv:huan1ik8-tsing3kui1] +passenv = * +deps = + coverage +commands= + python manage.py migrate + coverage run --source=臺灣言語服務 manage.py test 試驗.翻譯.test詔安腔翻譯整合試驗.詔安腔翻譯整合試驗 + [testenv:flake8] deps = flake8 diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\251\224\345\256\211\350\205\224\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\251\224\345\256\211\350\205\224\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" index 2c3f876e..def65121 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\251\224\345\256\211\350\205\224\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\251\224\345\256\211\350\205\224\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" @@ -17,11 +17,8 @@ class 詔安腔翻譯整合試驗(TestCase): @classmethod def setUpClass(cls): super(cls, cls).setUpClass() - try: - cls.服務 = Moses服務({'詔安腔': Moses載入.摩西翻譯模型('詔安腔', 8501)}) - except Exception: - Moses模型訓練.訓練一个摩西翻譯模型('詔安腔', '漢語') - cls.服務 = Moses服務({'詔安腔': Moses載入.摩西翻譯模型('詔安腔', 8501)}) + Moses模型訓練.訓練正規化模型('詔安腔', '漢語') + cls.服務 = Moses服務({'詔安腔': Moses載入.摩西翻譯模型('詔安腔', 8501)}) cls.ProxyPatch = patch('Pyro4.Proxy') ProxyMock = cls.ProxyPatch.start() ProxyMock.return_value = cls.服務 From 19e5edcb1442780d599501e7a8976f861965314f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Tue, 15 May 2018 16:45:41 +0800 Subject: [PATCH 29/59] =?UTF-8?q?=E7=94=A8=E6=95=99=E5=85=B8=E4=BE=8B?= =?UTF-8?q?=E5=8F=A5=E4=BE=86=E5=81=9A=E8=A8=93=E7=B7=B4=E7=B4=A0=E6=9D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tox.ini | 12 +++++-- ...64\345\220\210\350\251\246\351\251\227.py" | 34 ++++++++----------- 2 files changed, 23 insertions(+), 23 deletions(-) rename "\350\251\246\351\251\227/\347\277\273\350\255\257/test\351\226\251\345\215\227\350\252\236\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" => "\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" (77%) diff --git a/tox.ini b/tox.ini index 373ca944..10557a01 100644 --- a/tox.ini +++ b/tox.ini @@ -26,26 +26,32 @@ commands= [testenv:huan1ik8] passenv = * deps = + hue7jip8 coverage commands= python manage.py migrate - coverage run --source=臺灣言語服務 manage.py 訓練Moses 詔安腔 + python manage.py 教典例句 + coverage run --source=臺灣言語服務 manage.py 訓練Moses 台語 [testenv:huan1ik8-gua7bun5] passenv = * deps = + hue7jip8 coverage commands= python manage.py migrate - coverage run --source=臺灣言語服務 manage.py 訓練Moses翻譯做外文 詔安腔 + python manage.py 教典例句 + coverage run --source=臺灣言語服務 manage.py 訓練Moses翻譯做外文 台語 [testenv:huan1ik8-tsing3kui1] passenv = * deps = + hue7jip8 coverage commands= python manage.py migrate - coverage run --source=臺灣言語服務 manage.py test 試驗.翻譯.test詔安腔翻譯整合試驗.詔安腔翻譯整合試驗 + python manage.py 教典例句 + coverage run --source=臺灣言語服務 manage.py test 試驗.翻譯.test台語正規化整合試驗.台語正規化整合試驗 [testenv:flake8] deps = diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\351\226\251\345\215\227\350\252\236\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" similarity index 77% rename from "\350\251\246\351\251\227/\347\277\273\350\255\257/test\351\226\251\345\215\227\350\252\236\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" rename to "\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" index e4771b52..d074bd72 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\351\226\251\345\215\227\350\252\236\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" @@ -6,22 +6,17 @@ from django.test.testcases import TestCase -from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 from 臺灣言語服務.Moses載入 import Moses載入 from 臺灣言語服務.Moses服務 import Moses服務 from 臺灣言語服務.Moses介面 import Moses介面 -class 閩南語翻譯整合試驗(TestCase): +class 台語正規化整合試驗(TestCase): @classmethod def setUpClass(cls): super(cls, cls).setUpClass() - try: - cls.服務 = Moses服務({'閩南語': Moses載入.摩西翻譯模型('閩南語', 8500)}) - except OSError: - Moses模型訓練.訓練一个摩西翻譯模型('閩南語', '漢語') - cls.服務 = Moses服務({'閩南語': Moses載入.摩西翻譯模型('閩南語', 8500)}) + cls.服務 = Moses服務({'台語': Moses載入.摩西翻譯模型('台語', 8500)}) cls.ProxyPatch = patch('Pyro4.Proxy') ProxyMock = cls.ProxyPatch.start() ProxyMock.return_value = cls.服務 @@ -38,7 +33,7 @@ def setUp(self): def test_短詞翻譯(self): 連線要求 = RequestFactory().get('/正規化翻譯') 連線要求.GET = { - '查詢腔口': '閩南語', + '查詢腔口': '台語', '查詢語句': '你好' } 連線回應 = self.服務功能.正規化翻譯(連線要求) @@ -50,7 +45,7 @@ def test_短詞翻譯(self): def test_有多元書寫(self): 連線要求 = RequestFactory().get('/正規化翻譯') 連線要求.GET = { - '查詢腔口': '閩南語', + '查詢腔口': '台語', '查詢語句': '你好' } 連線回應 = self.服務功能.正規化翻譯(連線要求) @@ -61,7 +56,7 @@ def test_有多元書寫(self): def test_兩句翻譯(self): 連線要求 = RequestFactory().get('/正規化翻譯') 連線要求.GET = { - '查詢腔口': '閩南語', + '查詢腔口': '台語', '查詢語句': '你好嗎?我很好!' } 連線回應 = self.服務功能.正規化翻譯(連線要求) @@ -70,15 +65,15 @@ def test_兩句翻譯(self): self.assertIn('分詞', 回應物件) self.assertIn('綜合標音', 回應物件) - def test_無腔口預設閩南語(self): + def test_無腔口預設台語(self): 連線要求 = RequestFactory().get('/正規化翻譯') 連線要求.GET = { - '查詢腔口': '閩南語', + '查詢腔口': '台語', '查詢語句': '你好嗎?我很好!' } 連線回應 = self.服務功能.正規化翻譯(連線要求) self.assertEqual(連線回應.status_code, 200) - 閩南語回應物件 = json.loads(連線回應.content.decode("utf-8")) + 台語回應物件 = json.loads(連線回應.content.decode("utf-8")) 連線要求 = RequestFactory().get('/正規化翻譯') 連線要求.GET = { @@ -88,33 +83,32 @@ def test_無腔口預設閩南語(self): 連線回應 = self.服務功能.正規化翻譯(連線要求) self.assertEqual(連線回應.status_code, 200) 回應物件 = json.loads(連線回應.content.decode("utf-8")) - self.assertEqual(回應物件, 閩南語回應物件) + self.assertEqual(回應物件, 台語回應物件) - def test_無參數預設閩南語(self): + def test_無參數預設台語(self): 連線要求 = RequestFactory().get('/正規化翻譯') 連線要求.GET = { - '查詢腔口': '閩南語', + '查詢腔口': '台語', '查詢語句': '你好嗎?我很好!' } 連線回應 = self.服務功能.正規化翻譯(連線要求) self.assertEqual(連線回應.status_code, 200) - 閩南語回應物件 = json.loads(連線回應.content.decode("utf-8")) + 台語回應物件 = json.loads(連線回應.content.decode("utf-8")) 連線要求 = RequestFactory().get('/正規化翻譯') 連線要求.GET = {} 連線回應 = self.服務功能.正規化翻譯(連線要求) self.assertEqual(連線回應.status_code, 200) 回應物件 = json.loads(連線回應.content.decode("utf-8")) - self.assertEqual(回應物件, 閩南語回應物件) + self.assertEqual(回應物件, 台語回應物件) def test_一个空白(self): 連線要求 = RequestFactory().get('/正規化翻譯') 連線要求.GET = { - '查詢腔口': '閩南語', + '查詢腔口': '台語', '查詢語句': ' ' } 連線回應 = self.服務功能.正規化翻譯(連線要求) self.assertEqual(連線回應.status_code, 200) 回應物件 = json.loads(連線回應.content.decode("utf-8")) self.assertIn('分詞', 回應物件) - self.assertIn('綜合標音', 回應物件) From db3b038e6cfefbee8b51e8dbd7796e484e6ae0e6 Mon Sep 17 00:00:00 2001 From: fafoy Date: Wed, 16 May 2018 10:43:49 +0800 Subject: [PATCH 30/59] =?UTF-8?q?=E4=BA=88=E6=95=B4=E5=90=88=E8=A9=A6?= =?UTF-8?q?=E9=A9=97=E6=9C=89=E5=8C=AF=E5=85=A5=E9=80=9A=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tai5uan5_gian5gi2_hok8bu7/settings.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tai5uan5_gian5gi2_hok8bu7/settings.py b/tai5uan5_gian5gi2_hok8bu7/settings.py index 8b872281..c559ec4b 100644 --- a/tai5uan5_gian5gi2_hok8bu7/settings.py +++ b/tai5uan5_gian5gi2_hok8bu7/settings.py @@ -189,3 +189,12 @@ # For better celery performance CELERY_IGNORE_RESULT = True CELERY_TIMEZONE = TIME_ZONE + +try: + import 匯入 +except ImportError: + '一般試驗免匯入' +else: + '整合試驗需要匯入' + 匯入 + INSTALLED_APPS += ('匯入',) From 247ae44d3741a6be95ba0cf604ccea8d154e3f9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 17 May 2018 16:42:02 +0800 Subject: [PATCH 31/59] =?UTF-8?q?=E5=8C=AF=E5=85=A5=E7=9A=84=E8=A8=AD?= =?UTF-8?q?=E5=AE=9A=EF=BC=8C=E7=94=A8=E9=80=B2=E5=89=8D=E5=AF=AB=E5=A5=BD?= =?UTF-8?q?=E7=9A=84=E6=8C=87=E4=BB=A4=E4=BE=86=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tai5uan5_gian5gi2_hok8bu7/settings.py | 9 --------- tox.ini | 3 +++ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/tai5uan5_gian5gi2_hok8bu7/settings.py b/tai5uan5_gian5gi2_hok8bu7/settings.py index c559ec4b..8b872281 100644 --- a/tai5uan5_gian5gi2_hok8bu7/settings.py +++ b/tai5uan5_gian5gi2_hok8bu7/settings.py @@ -189,12 +189,3 @@ # For better celery performance CELERY_IGNORE_RESULT = True CELERY_TIMEZONE = TIME_ZONE - -try: - import 匯入 -except ImportError: - '一般試驗免匯入' -else: - '整合試驗需要匯入' - 匯入 - INSTALLED_APPS += ('匯入',) diff --git a/tox.ini b/tox.ini index 10557a01..9417411e 100644 --- a/tox.ini +++ b/tox.ini @@ -29,6 +29,7 @@ deps = hue7jip8 coverage commands= + bash 加匯入設定.sh python manage.py migrate python manage.py 教典例句 coverage run --source=臺灣言語服務 manage.py 訓練Moses 台語 @@ -39,6 +40,7 @@ deps = hue7jip8 coverage commands= + bash 加匯入設定.sh python manage.py migrate python manage.py 教典例句 coverage run --source=臺灣言語服務 manage.py 訓練Moses翻譯做外文 台語 @@ -49,6 +51,7 @@ deps = hue7jip8 coverage commands= + bash 加匯入設定.sh python manage.py migrate python manage.py 教典例句 coverage run --source=臺灣言語服務 manage.py test 試驗.翻譯.test台語正規化整合試驗.台語正規化整合試驗 From fb731114b727382a8620b381f444e9a8d1bda7b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 17 May 2018 16:43:13 +0800 Subject: [PATCH 32/59] =?UTF-8?q?=E4=BF=AE=E8=B3=87=E6=96=99=E5=A4=BE?= =?UTF-8?q?=E8=AE=8A=E6=95=B8=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\350\274\211\345\205\245.py" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\350\274\211\345\205\245.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\350\274\211\345\205\245.py" index bb8f8e3a..f8ab97ac 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\350\274\211\345\205\245.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\350\274\211\345\205\245.py" @@ -9,7 +9,7 @@ from 臺灣言語工具.語言模型.KenLM語言模型 import KenLM語言模型 from 臺灣言語工具.翻譯.摩西工具.摩西用戶端 import 摩西用戶端 from 臺灣言語工具.翻譯.摩西工具.語句編碼器 import 語句編碼器 -from 臺灣言語服務.資料模型路徑 import 翻譯模型資料夾 +from 臺灣言語服務.資料模型路徑 import 翻譯正規化模型資料夾 class Moses載入: @@ -30,7 +30,7 @@ def 摩西模型(cls): @classmethod def 摩西翻譯模型(cls, 母語腔口, 摩西埠): - 母語翻譯模型資料夾 = 翻譯模型資料夾(母語腔口) + 母語翻譯模型資料夾 = 翻譯正規化模型資料夾(母語腔口) 服務 = 摩西服務端(母語翻譯模型資料夾, 埠=摩西埠) 服務.走() From 82caa0387114cc42a23e3621c24174b5e62e502c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 17 May 2018 17:13:23 +0800 Subject: [PATCH 33/59] =?UTF-8?q?=E6=84=9B=E7=B7=A8moses=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" | 3 +++ ...255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" | 3 +++ 2 files changed, 6 insertions(+) diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" index c5c17420..c72c0fc8 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" @@ -9,6 +9,7 @@ from 臺灣言語服務.Moses載入 import Moses載入 from 臺灣言語服務.Moses服務 import Moses服務 from 臺灣言語服務.Moses介面 import Moses介面 +from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 class 台語正規化整合試驗(TestCase): @@ -16,6 +17,8 @@ class 台語正規化整合試驗(TestCase): @classmethod def setUpClass(cls): super(cls, cls).setUpClass() + 安裝摩西翻譯佮相關程式.安裝gizapp() + 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=4) cls.服務 = Moses服務({'台語': Moses載入.摩西翻譯模型('台語', 8500)}) cls.locatePatch = patch('Pyro4.locateNS') cls.ProxyPatch = patch('Pyro4.Proxy') diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\251\224\345\256\211\350\205\224\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\251\224\345\256\211\350\205\224\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" index d383a2c0..5faa2221 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\251\224\345\256\211\350\205\224\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\350\251\224\345\256\211\350\205\224\347\277\273\350\255\257\346\225\264\345\220\210\350\251\246\351\251\227.py" @@ -10,6 +10,7 @@ from 臺灣言語服務.Moses載入 import Moses載入 from 臺灣言語服務.Moses服務 import Moses服務 from 臺灣言語服務.Moses介面 import Moses介面 +from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 class 詔安腔翻譯整合試驗(TestCase): @@ -17,6 +18,8 @@ class 詔安腔翻譯整合試驗(TestCase): @classmethod def setUpClass(cls): super(cls, cls).setUpClass() + 安裝摩西翻譯佮相關程式.安裝gizapp() + 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=4) Moses模型訓練.訓練正規化模型('詔安腔', '漢語') cls.服務 = Moses服務({'詔安腔': Moses載入.摩西翻譯模型('詔安腔', 8501)}) cls.locatePatch = patch('Pyro4.locateNS') From 301461b29733bd227612c46a200a3fe3b5c16a69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 17 May 2018 22:35:09 +0800 Subject: [PATCH 34/59] =?UTF-8?q?=E5=8A=A0=E5=8F=B0=E8=AA=9E=E8=A8=93?= =?UTF-8?q?=E7=B7=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\226\231\346\250\241\345\236\213\350\267\257\345\276\221.py" | 2 +- ...\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\263\207\346\226\231\346\250\241\345\236\213\350\267\257\345\276\221.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\263\207\346\226\231\346\250\241\345\236\213\350\267\257\345\276\221.py" index a78b9a2e..dcbce55e 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\263\207\346\226\231\346\250\241\345\236\213\350\267\257\345\276\221.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/\350\263\207\346\226\231\346\250\241\345\236\213\350\267\257\345\276\221.py" @@ -21,7 +21,7 @@ def 翻譯做外文模型資料夾(語言): def 翻譯正規化模型資料夾(語言): - return join(資料路徑, 語言, '翻譯做外文模型') + return join(資料路徑, 語言, '翻譯正規化模型') def 合成模型資料夾(語言): diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" index c72c0fc8..5dd1b979 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" @@ -10,6 +10,7 @@ from 臺灣言語服務.Moses服務 import Moses服務 from 臺灣言語服務.Moses介面 import Moses介面 from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 +from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 class 台語正規化整合試驗(TestCase): @@ -19,6 +20,7 @@ def setUpClass(cls): super(cls, cls).setUpClass() 安裝摩西翻譯佮相關程式.安裝gizapp() 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=4) + Moses模型訓練.訓練正規化模型('詔安腔', '漢語') cls.服務 = Moses服務({'台語': Moses載入.摩西翻譯模型('台語', 8500)}) cls.locatePatch = patch('Pyro4.locateNS') cls.ProxyPatch = patch('Pyro4.Proxy') From a9eea9dadb2ea3e16dd114ce1baa8ec82448d8ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 17 May 2018 22:38:57 +0800 Subject: [PATCH 35/59] =?UTF-8?q?=E6=96=B7=E8=A9=9E=E7=9A=84=E6=99=82?= =?UTF-8?q?=E9=99=A3=E5=8D=B0=E8=B3=87=E6=96=99=EF=BC=8Cci=E6=89=8D?= =?UTF-8?q?=E8=A2=82tsah=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" | 5 +++++ 1 file changed, 5 insertions(+) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index 413e842b..e8e2b2cc 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -22,6 +22,7 @@ from 臺灣言語服務.models import 訓練過渡格式 from 臺灣言語服務.資料模型路徑 import 翻譯正規化模型資料夾 from 臺灣言語工具.斷詞.國教院斷詞用戶端 import 國教院斷詞用戶端 +from sys import stderr class Moses模型訓練(程式腳本): @@ -216,6 +217,7 @@ def _南島語語料訓練(cls, 語言資料夾, 翻譯模型資料夾): @classmethod def _外文斷詞(cls, 語料陣列, 暫存資料夾): 斷詞檔名 = join(暫存資料夾, '外文斷詞.txt.gz') + 幾逝 = 0 with gzip.open(斷詞檔名, 'wt') as 寫檔: for 原本檔案 in 語料陣列: for 一逝 in cls._讀檔案(原本檔案): @@ -224,4 +226,7 @@ def _外文斷詞(cls, 語料陣列, 暫存資料夾): for 詞條, 詞性 in 國教院斷詞用戶端.語句斷詞做陣列(句物件.看型(' ', ' ')): 斷詞結果.append("{}-(-{}-)".format(詞條, 詞性)) print(' '.join(斷詞結果), file=寫檔) + 幾逝 += 1 + if 幾逝 % 100 == 0: + print('外文斷 {} 句矣'.format(幾逝), file=stderr) return [斷詞檔名] From f3ef7e7e3a6a6877af21c70dcc92da6174755ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 18 May 2018 09:09:09 +0800 Subject: [PATCH 36/59] =?UTF-8?q?=E4=BF=AE=E7=BF=BB=E8=AD=AF=E8=AA=9E?= =?UTF-8?q?=E8=A8=80=E5=8F=B0=E8=AA=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" index 5dd1b979..3eb9fc37 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" @@ -20,7 +20,7 @@ def setUpClass(cls): super(cls, cls).setUpClass() 安裝摩西翻譯佮相關程式.安裝gizapp() 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=4) - Moses模型訓練.訓練正規化模型('詔安腔', '漢語') + Moses模型訓練.訓練正規化模型('台語', '漢語') cls.服務 = Moses服務({'台語': Moses載入.摩西翻譯模型('台語', 8500)}) cls.locatePatch = patch('Pyro4.locateNS') cls.ProxyPatch = patch('Pyro4.Proxy') From d7217f8bfa766773583fb8156db2055625933a25 Mon Sep 17 00:00:00 2001 From: fafoy Date: Tue, 22 May 2018 23:02:25 +0800 Subject: [PATCH 37/59] =?UTF-8?q?=E5=85=B1=20ts=C3=ACng-kui-hu=C3=A0=20?= =?UTF-8?q?=E7=9A=84=E9=83=A8=E4=BB=BD=E6=A8=A1=E7=B5=84=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...41\345\236\213\350\250\223\347\267\264.py" | 22 +++--------- .../\350\250\223\347\267\264Moses.py" | 8 +++-- ...es\346\255\243\350\246\217\345\214\226.py" | 26 ++++++++++++++ ...57\345\201\232\345\244\226\346\226\207.py" | 35 +++---------------- ...64\345\220\210\350\251\246\351\251\227.py" | 3 +- 5 files changed, 41 insertions(+), 53 deletions(-) create mode 100644 "\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\346\255\243\350\246\217\345\214\226.py" diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" index e8e2b2cc..9e1145c4 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\346\250\241\345\236\213\350\250\223\347\267\264.py" @@ -2,8 +2,8 @@ import gzip from os import makedirs from os.path import join, basename - -from setuptools.py31compat import TemporaryDirectory +from sys import stderr +from tempfile import TemporaryDirectory from 臺灣言語工具.翻譯.摩西工具.摩西翻譯模型訓練 import 摩西翻譯模型訓練 @@ -17,12 +17,9 @@ from 臺灣言語工具.語言模型.KenLM語言模型訓練 import KenLM語言模型訓練 from 臺灣言語工具.斷詞.拄好長度辭典揣詞 import 拄好長度辭典揣詞 from 臺灣言語工具.斷詞.語言模型揀集內組 import 語言模型揀集內組 -from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 from 臺灣言語工具.解析整理.解析錯誤 import 解析錯誤 from 臺灣言語服務.models import 訓練過渡格式 -from 臺灣言語服務.資料模型路徑 import 翻譯正規化模型資料夾 from 臺灣言語工具.斷詞.國教院斷詞用戶端 import 國教院斷詞用戶端 -from sys import stderr class Moses模型訓練(程式腳本): @@ -98,16 +95,9 @@ def 訓練翻譯做外文模型(cls, 語料資料夾, 模型資料夾): ) @classmethod - def 訓練正規化模型(cls, 語言, 語族): - 語料資料夾 = 翻譯語料資料夾(語言) - 模型資料夾 = 翻譯正規化模型資料夾(語言) + def 訓練正規化模型(cls, 語料資料夾, 模型資料夾): makedirs(模型資料夾, exist_ok=True) - if 語族 == '漢語': - 平行華語, 平行母語, 母語文本 = cls._漢語語料訓練(語料資料夾, 模型資料夾) - elif 語族 == '南島語': - 平行華語, 平行母語, 母語文本 = cls._南島語語料訓練(語料資料夾, 模型資料夾) - else: - raise RuntimeError('{}的語族無設定!!'.format(語族)) + 平行華語, 平行母語, 母語文本 = cls._漢語語料訓練(語料資料夾, 模型資料夾) 模型訓練 = 摩西翻譯模型訓練() 模型訓練.訓練( @@ -210,10 +200,6 @@ def _原始語料(cls, 語言資料夾): ] return 平行華語, 平行母語, 母語文本 - @classmethod - def _南島語語料訓練(cls, 語言資料夾, 翻譯模型資料夾): - return cls._漢語語料訓練(語言資料夾, 翻譯模型資料夾) - @classmethod def _外文斷詞(cls, 語料陣列, 暫存資料夾): 斷詞檔名 = join(暫存資料夾, '外文斷詞.txt.gz') diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index 4f0c7bd5..587cc21d 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -9,9 +9,11 @@ class Command(BaseCommand): help = ( - '訓練Moses模型,會當選愛訓練啥物語言抑是全部語言的。\n' + '訓練Moses模型,會用資料庫全部ê語料來訓練。\n' '裝Moses程式,掠而且編譯,可能愛半點鐘以上' ) + 翻譯做資料夾 = 翻譯做母語模型資料夾 + 訓練做 = Moses模型訓練.訓練翻譯做母語模型 def add_arguments(self, parser): parser.add_argument( @@ -31,6 +33,6 @@ def handle(self, *args, **參數): 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] 語料資料夾 = 翻譯語料資料夾(語言) - 模型資料夾 = 翻譯做母語模型資料夾(語言) + 模型資料夾 = self.翻譯做資料夾(語言) Moses模型訓練.輸出全部語料(語料資料夾) - Moses模型訓練.訓練翻譯做母語模型(語料資料夾, 模型資料夾) + self.訓練做(語料資料夾, 模型資料夾) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\346\255\243\350\246\217\345\214\226.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\346\255\243\350\246\217\345\214\226.py" new file mode 100644 index 00000000..8c135550 --- /dev/null +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\346\255\243\350\246\217\345\214\226.py" @@ -0,0 +1,26 @@ + + +from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 +from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 +from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 +from 臺灣言語服務.資料模型路徑 import 翻譯做母語模型資料夾 +from 臺灣言語服務.management.commands.訓練Moses import Command as 訓練Moses +from 臺灣言語服務.資料模型路徑 import 翻譯正規化模型資料夾 + + +class Command(訓練Moses): + help = ( + '訓練Moses模型,會當選愛訓練啥物語言抑是全部語言的。\n' + '裝Moses程式,掠而且編譯,可能愛半點鐘以上' + ) + 翻譯做資料夾 = 翻譯正規化模型資料夾 + 訓練做 = Moses模型訓練.訓練正規化模型 + + def handle(self, *args, **參數): + 安裝摩西翻譯佮相關程式.安裝gizapp() + 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) + 語言 = 參數['語言'] + 語料資料夾 = 翻譯語料資料夾(語言) + 模型資料夾 = 翻譯做母語模型資料夾(語言) + Moses模型訓練.輸出全部語料(語料資料夾) + Moses模型訓練.訓練翻譯做母語模型(語料資料夾, 模型資料夾) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" index 8f4f24ba..91b4c442 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" @@ -1,36 +1,9 @@ -from django.core.management.base import BaseCommand - from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 -from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 -from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 from 臺灣言語服務.資料模型路徑 import 翻譯做外文模型資料夾 +from 臺灣言語服務.management.commands.訓練Moses import Command as 訓練Moses -class Command(BaseCommand): - help = ( - '訓練Moses模型,母語翻譯到外文。\n' - '裝Moses程式,掠而且編譯,可能愛半點鐘以上' - ) - - def add_arguments(self, parser): - parser.add_argument( - '語言', - type=str, - help='輸出的語言資料夾名' - ) - parser.add_argument( - '--編譯核心數', - dest='核心數', - default=4, - type=int, - ) - - def handle(self, *args, **參數): - 安裝摩西翻譯佮相關程式.安裝gizapp() - 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) - 語言 = 參數['語言'] - 語料資料夾 = 翻譯語料資料夾(語言) - 模型資料夾 = 翻譯做外文模型資料夾(語言) - Moses模型訓練.輸出全部語料(語料資料夾) - Moses模型訓練.訓練翻譯做外文模型(語料資料夾, 模型資料夾) +class Command(訓練Moses): + 翻譯做資料夾 = 翻譯做外文模型資料夾 + 訓練做 = Moses模型訓練.訓練翻譯做外文模型 diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" index 3eb9fc37..016553e9 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" @@ -11,6 +11,7 @@ from 臺灣言語服務.Moses介面 import Moses介面 from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 +from django.core.management import call_command class 台語正規化整合試驗(TestCase): @@ -20,7 +21,7 @@ def setUpClass(cls): super(cls, cls).setUpClass() 安裝摩西翻譯佮相關程式.安裝gizapp() 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=4) - Moses模型訓練.訓練正規化模型('台語', '漢語') + call_command('訓練Moses正規化', '台語') cls.服務 = Moses服務({'台語': Moses載入.摩西翻譯模型('台語', 8500)}) cls.locatePatch = patch('Pyro4.locateNS') cls.ProxyPatch = patch('Pyro4.Proxy') From 02f4abb165703a97f8e28e5409e1e5fbf5a6483a Mon Sep 17 00:00:00 2001 From: fafoy Date: Wed, 23 May 2018 07:00:20 +0800 Subject: [PATCH 38/59] =?UTF-8?q?siu=20huan-i=CC=8Dk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\350\250\223\347\267\264Moses.py" | 17 ++++++++------- ...es\346\255\243\350\246\217\345\214\226.py" | 21 ++++--------------- ...57\345\201\232\345\244\226\346\226\207.py" | 7 +++++-- ...64\345\220\210\350\251\246\351\251\227.py" | 1 - 4 files changed, 19 insertions(+), 27 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index 587cc21d..1eb8483e 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -2,7 +2,6 @@ from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 -from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 from 臺灣言語服務.資料模型路徑 import 翻譯做母語模型資料夾 @@ -12,8 +11,12 @@ class Command(BaseCommand): '訓練Moses模型,會用資料庫全部ê語料來訓練。\n' '裝Moses程式,掠而且編譯,可能愛半點鐘以上' ) - 翻譯做資料夾 = 翻譯做母語模型資料夾 - 訓練做 = Moses模型訓練.訓練翻譯做母語模型 + + def 翻譯做資料夾(self): + return 翻譯做母語模型資料夾 + + def 訓練做(self): + return Moses模型訓練.訓練翻譯做母語模型 def add_arguments(self, parser): parser.add_argument( @@ -29,10 +32,10 @@ def add_arguments(self, parser): ) def handle(self, *args, **參數): - 安裝摩西翻譯佮相關程式.安裝gizapp() - 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) + # 安裝摩西翻譯佮相關程式.安裝gizapp() + # 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] 語料資料夾 = 翻譯語料資料夾(語言) - 模型資料夾 = self.翻譯做資料夾(語言) + 模型資料夾 = self.翻譯做資料夾()(語言) Moses模型訓練.輸出全部語料(語料資料夾) - self.訓練做(語料資料夾, 模型資料夾) + self.訓練做()(語料資料夾, 模型資料夾) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\346\255\243\350\246\217\345\214\226.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\346\255\243\350\246\217\345\214\226.py" index 8c135550..4b696830 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\346\255\243\350\246\217\345\214\226.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\346\255\243\350\246\217\345\214\226.py" @@ -1,26 +1,13 @@ from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 -from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 -from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 -from 臺灣言語服務.資料模型路徑 import 翻譯做母語模型資料夾 from 臺灣言語服務.management.commands.訓練Moses import Command as 訓練Moses from 臺灣言語服務.資料模型路徑 import 翻譯正規化模型資料夾 class Command(訓練Moses): - help = ( - '訓練Moses模型,會當選愛訓練啥物語言抑是全部語言的。\n' - '裝Moses程式,掠而且編譯,可能愛半點鐘以上' - ) - 翻譯做資料夾 = 翻譯正規化模型資料夾 - 訓練做 = Moses模型訓練.訓練正規化模型 + def 翻譯做資料夾(self): + return 翻譯正規化模型資料夾 - def handle(self, *args, **參數): - 安裝摩西翻譯佮相關程式.安裝gizapp() - 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) - 語言 = 參數['語言'] - 語料資料夾 = 翻譯語料資料夾(語言) - 模型資料夾 = 翻譯做母語模型資料夾(語言) - Moses模型訓練.輸出全部語料(語料資料夾) - Moses模型訓練.訓練翻譯做母語模型(語料資料夾, 模型資料夾) + def 訓練做(self): + return Moses模型訓練.訓練正規化模型 diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" index 91b4c442..cc7e789a 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses\347\277\273\350\255\257\345\201\232\345\244\226\346\226\207.py" @@ -5,5 +5,8 @@ class Command(訓練Moses): - 翻譯做資料夾 = 翻譯做外文模型資料夾 - 訓練做 = Moses模型訓練.訓練翻譯做外文模型 + def 翻譯做資料夾(self): + return 翻譯做外文模型資料夾 + + def 訓練做(self): + return Moses模型訓練.訓練翻譯做外文模型 diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" index 016553e9..b551ccfc 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" @@ -10,7 +10,6 @@ from 臺灣言語服務.Moses服務 import Moses服務 from 臺灣言語服務.Moses介面 import Moses介面 from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 -from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 from django.core.management import call_command From 7b11751fe979c1f328f860bd2e46ce763d032c78 Mon Sep 17 00:00:00 2001 From: fafoy Date: Wed, 23 May 2018 07:01:57 +0800 Subject: [PATCH 39/59] =?UTF-8?q?t=C4=AB=20tox=20ts=C3=B2=20tsiah=20=C5=AB?= =?UTF-8?q?=20g=C3=AD-li=C4=81u?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tox.ini | 3 ++- ...4\226\346\225\264\345\220\210\350\251\246\351\251\227.py" | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/tox.ini b/tox.ini index 9417411e..af0301c1 100644 --- a/tox.ini +++ b/tox.ini @@ -54,7 +54,8 @@ commands= bash 加匯入設定.sh python manage.py migrate python manage.py 教典例句 - coverage run --source=臺灣言語服務 manage.py test 試驗.翻譯.test台語正規化整合試驗.台語正規化整合試驗 + coverage run --source=臺灣言語服務 manage.py 訓練Moses翻譯做外文 台語 + coverage run --source=臺灣言語服務 -a manage.py test 試驗.翻譯.test台語正規化整合試驗.台語正規化整合試驗 [testenv:flake8] deps = diff --git "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" index b551ccfc..c5c17420 100644 --- "a/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/\347\277\273\350\255\257/test\345\217\260\350\252\236\346\255\243\350\246\217\345\214\226\346\225\264\345\220\210\350\251\246\351\251\227.py" @@ -9,8 +9,6 @@ from 臺灣言語服務.Moses載入 import Moses載入 from 臺灣言語服務.Moses服務 import Moses服務 from 臺灣言語服務.Moses介面 import Moses介面 -from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 -from django.core.management import call_command class 台語正規化整合試驗(TestCase): @@ -18,9 +16,6 @@ class 台語正規化整合試驗(TestCase): @classmethod def setUpClass(cls): super(cls, cls).setUpClass() - 安裝摩西翻譯佮相關程式.安裝gizapp() - 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=4) - call_command('訓練Moses正規化', '台語') cls.服務 = Moses服務({'台語': Moses載入.摩西翻譯模型('台語', 8500)}) cls.locatePatch = patch('Pyro4.locateNS') cls.ProxyPatch = patch('Pyro4.Proxy') From e1ed0686b3bb9d648b4579454006f2c19e3ea738 Mon Sep 17 00:00:00 2001 From: fafoy Date: Wed, 23 May 2018 07:12:25 +0800 Subject: [PATCH 40/59] =?UTF-8?q?=C4=ABng=20docker=20ts=C3=A1u=20tsh=C3=AC?= =?UTF-8?q?-gi=C4=81m=20khu=C3=A0nn-m=C4=81i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 35 +++-------------------------------- Dockerfile | 12 ++++++++++++ 2 files changed, 15 insertions(+), 32 deletions(-) create mode 100644 Dockerfile diff --git a/.travis.yml b/.travis.yml index 9e4f3ae2..8df2b5fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,45 +11,16 @@ env: - TOX_ENV=huan1ik8-gua7bun5 - TOX_ENV=huan1ik8-tsing3kui1 - TOX_ENV=flake8 -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - gcc-4.9 - - g++-4.9 - - python3-dev - - libc6-dev-i386 - - linux-libc-dev - - gcc-multilib - - git - - subversion - - automake - - libtool - - zlib1g-dev - - libbz2-dev - - liblzma-dev - - libboost-all-dev - - libgoogle-perftools-dev - - libxmlrpc-c++.*-dev - - cmake - - csh - - libyaml-dev - - libxslt1-dev - - libav-tools - - libmp3lame0 services: +- docker - rabbitmq -install: -- sudo apt-get install -y libavcodec-extra-54 libx11-dev libx11-dev:i386 -- pip install tox -- pip install python-coveralls branches: only: - master - "/\\d+\\.\\d+\\.\\d+/" script: -- tox -e $TOX_ENV +- docker build -t tai5-uan5_gian5-gi2_hok8-bu7_travis --build-arg TOX_ENV=$TOX_ENV . +- docker run --rm tai5-uan5_gian5-gi2_hok8-bu7_travis cat .coverage > .coverage after_success: - coverage report - coveralls diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..d2259444 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM i3thuan5/tai5-uan5_gian5-gi2_kang1-ku7:docker as ki1tshoo2 +MAINTAINER i3thuan5 + +ARG TOX_ENV + +RUN mkdir -p /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 +WORKDIR /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 +RUN pip3 install tox python-coveralls +RUN tox -e ${TOX_ENV} + +# RUN echo TAI5TSUAN2HUA2 = \'`/sbin/ip route|awk '/default/ { print $3 }'`\' >> 設定/settings.py +COPY . From 28f3cfad9004b99d5e9af6b365b9874d0bf63003 Mon Sep 17 00:00:00 2001 From: fafoy Date: Wed, 23 May 2018 07:13:29 +0800 Subject: [PATCH 41/59] =?UTF-8?q?=E6=84=9B=20pian-i=CC=8Dk=20moses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../management/commands/\350\250\223\347\267\264Moses.py" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index 1eb8483e..18905335 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -32,8 +32,8 @@ def add_arguments(self, parser): ) def handle(self, *args, **參數): - # 安裝摩西翻譯佮相關程式.安裝gizapp() - # 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) + 安裝摩西翻譯佮相關程式.安裝gizapp() + 安裝摩西翻譯佮相關程式.安裝moses(編譯CPU數=參數['核心數']) 語言 = 參數['語言'] 語料資料夾 = 翻譯語料資料夾(語言) 模型資料夾 = self.翻譯做資料夾()(語言) From ef0ec57202f3d4fcdf941bcde5146ba254405454 Mon Sep 17 00:00:00 2001 From: fafoy Date: Wed, 23 May 2018 07:14:53 +0800 Subject: [PATCH 42/59] =?UTF-8?q?Siu=20=E5=AE=89=E8=A3=9D=20moses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../management/commands/\350\250\223\347\267\264Moses.py" | 1 + 1 file changed, 1 insertion(+) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" index 18905335..00607b8d 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/management/commands/\350\250\223\347\267\264Moses.py" @@ -4,6 +4,7 @@ from 臺灣言語服務.Moses模型訓練 import Moses模型訓練 from 臺灣言語服務.資料模型路徑 import 翻譯語料資料夾 from 臺灣言語服務.資料模型路徑 import 翻譯做母語模型資料夾 +from 臺灣言語工具.翻譯.摩西工具.安裝摩西翻譯佮相關程式 import 安裝摩西翻譯佮相關程式 class Command(BaseCommand): From 6cbffdb95493b85c37b5117ea2667f5350e38125 Mon Sep 17 00:00:00 2001 From: fafoy Date: Wed, 23 May 2018 08:13:44 +0800 Subject: [PATCH 43/59] ka COPY --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d2259444..ba1bd895 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ ARG TOX_ENV RUN mkdir -p /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 WORKDIR /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 RUN pip3 install tox python-coveralls +COPY . . RUN tox -e ${TOX_ENV} # RUN echo TAI5TSUAN2HUA2 = \'`/sbin/ip route|awk '/default/ { print $3 }'`\' >> 設定/settings.py -COPY . From 189f1b3e57aa49816a6e375fd50e7bb670253d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 24 May 2018 15:16:47 +0800 Subject: [PATCH 44/59] =?UTF-8?q?=E7=B5=90=E6=9D=9F=E6=89=8Dkhoo-pi=20.cov?= =?UTF-8?q?erage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8df2b5fb..061fc714 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,8 +20,8 @@ branches: - "/\\d+\\.\\d+\\.\\d+/" script: - docker build -t tai5-uan5_gian5-gi2_hok8-bu7_travis --build-arg TOX_ENV=$TOX_ENV . -- docker run --rm tai5-uan5_gian5-gi2_hok8-bu7_travis cat .coverage > .coverage after_success: +- docker run --rm tai5-uan5_gian5-gi2_hok8-bu7_travis cat .coverage > .coverage - coverage report - coveralls deploy: From 0340f01f272fb40d18e3c85c22bb931634a3e06a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Thu, 24 May 2018 18:12:58 +0800 Subject: [PATCH 45/59] =?UTF-8?q?=E4=BF=AEtox=E6=9C=83=E4=BA=82=E7=A2=BC?= =?UTF-8?q?=E7=9A=84=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ba1bd895..028d7ce5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,6 @@ RUN mkdir -p /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 WORKDIR /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 RUN pip3 install tox python-coveralls COPY . . -RUN tox -e ${TOX_ENV} +RUN LANG=zh_TW.utf8 tox -e ${TOX_ENV} # RUN echo TAI5TSUAN2HUA2 = \'`/sbin/ip route|awk '/default/ { print $3 }'`\' >> 設定/settings.py From 17bf63f4b17fdff78e6d537f14df70b9ac568635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 8 Jun 2018 17:59:10 +0800 Subject: [PATCH 46/59] ing thong-it e image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 028d7ce5..fe221f97 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM i3thuan5/tai5-uan5_gian5-gi2_kang1-ku7:docker as ki1tshoo2 +FROM i3thuan5/tai5-uan5_gian5-gi2_kang1-ku7 MAINTAINER i3thuan5 ARG TOX_ENV From 59cad17b16e66417265a79ac73c26b97a1ecf748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 8 Jun 2018 18:09:25 +0800 Subject: [PATCH 47/59] dockerignore --- .dockerignore | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..4ad01297 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,70 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +/.settings + +/venv +MANIFEST +/node_modules/ +/.project +/.pydevproject +/.git +/Dockerfile +/docker-compose.yml +/外部程式 + From a8a2b9b5fbc13ca23898a251394bb75510340a04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 8 Jun 2018 18:39:56 +0800 Subject: [PATCH 48/59] =?UTF-8?q?khak-ting=20e=20=E7=94=A8=E9=80=B2?= =?UTF-8?q?=E5=89=8D=E8=A3=9D=E7=9A=84moses=E7=9F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 4 ++-- tox.ini | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index fe221f97..d43633eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,8 +5,8 @@ ARG TOX_ENV RUN mkdir -p /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 WORKDIR /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 -RUN pip3 install tox python-coveralls +RUN pip3 install tox COPY . . -RUN LANG=zh_TW.utf8 tox -e ${TOX_ENV} +RUN LANG=zh_TW.utf8 tox --sitepackages -e ${TOX_ENV} # RUN echo TAI5TSUAN2HUA2 = \'`/sbin/ip route|awk '/default/ { print $3 }'`\' >> 設定/settings.py diff --git a/tox.ini b/tox.ini index af0301c1..8ad7ca0c 100644 --- a/tox.ini +++ b/tox.ini @@ -11,7 +11,8 @@ commands= coverage run --source=臺灣言語服務 manage.py test -p test*合成整合試驗.py [testenv:hap8sing5-hun3lian7] -whitelist_externals=bash +whitelist_externals = + bash deps = hue7jip8 coverage @@ -25,6 +26,8 @@ commands= [testenv:huan1ik8] passenv = * +whitelist_externals = + bash deps = hue7jip8 coverage @@ -36,6 +39,8 @@ commands= [testenv:huan1ik8-gua7bun5] passenv = * +whitelist_externals = + bash deps = hue7jip8 coverage @@ -47,6 +52,8 @@ commands= [testenv:huan1ik8-tsing3kui1] passenv = * +whitelist_externals = + bash deps = hue7jip8 coverage From 049f2cd604c0ad7ca250e59d742508118426b739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 8 Jun 2018 22:08:55 +0800 Subject: [PATCH 49/59] siu tsing-kui e tox --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 8ad7ca0c..531ed93d 100644 --- a/tox.ini +++ b/tox.ini @@ -61,7 +61,7 @@ commands= bash 加匯入設定.sh python manage.py migrate python manage.py 教典例句 - coverage run --source=臺灣言語服務 manage.py 訓練Moses翻譯做外文 台語 + coverage run --source=臺灣言語服務 manage.py 訓練Moses正規化 台語 coverage run --source=臺灣言語服務 -a manage.py test 試驗.翻譯.test台語正規化整合試驗.台語正規化整合試驗 [testenv:flake8] From 08871d668b8f9557cf90b8eae011170276217b78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 8 Jun 2018 22:18:41 +0800 Subject: [PATCH 50/59] =?UTF-8?q?=E4=BF=AE=E7=9C=8B=E8=A6=93=E5=96=AE?= =?UTF-8?q?=E5=85=83=E8=A9=A6=E9=A9=97=E7=9A=84=20rabbitmq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 1 + tai5uan5_gian5gi2_hok8bu7/celery.py | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d43633eb..68b274f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,7 @@ RUN mkdir -p /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 WORKDIR /usr/local/tai5-uan5_gian5-gi2_hok8-bu7 RUN pip3 install tox COPY . . +RUN echo RABBIT_MQ_TSU2_KI1 = \'`/sbin/ip route|awk '/default/ { print $3 }'`\' >> tai5uan5_gian5gi2_hok8bu7/settings.py RUN LANG=zh_TW.utf8 tox --sitepackages -e ${TOX_ENV} # RUN echo TAI5TSUAN2HUA2 = \'`/sbin/ip route|awk '/default/ { print $3 }'`\' >> 設定/settings.py diff --git a/tai5uan5_gian5gi2_hok8bu7/celery.py b/tai5uan5_gian5gi2_hok8bu7/celery.py index 491bc2a6..aab81158 100644 --- a/tai5uan5_gian5gi2_hok8bu7/celery.py +++ b/tai5uan5_gian5gi2_hok8bu7/celery.py @@ -1,12 +1,23 @@ from __future__ import absolute_import, unicode_literals + import os + from celery import Celery +from django.conf import settings + # set the default Django settings module for the 'celery' program. os.environ.setdefault( 'DJANGO_SETTINGS_MODULE', 'tai5uan5_gian5gi2_hok8bu7.settings') -app = Celery('tai5uan5_gian5gi2_hok8bu7') +try: + rabbitmq = 'amqp://guest:guest@{}:5672//'.format( + settings.RABBIT_MQ_TSU2_KI1 + ) +except AttributeError: + rabbitmq = None + +app = Celery('tai5uan5_gian5gi2_hok8bu7', broker=rabbitmq) # Using a string here means the worker don't have to serialize # the configuration object to child processes. From 59fd9055ddbfb2049be52b11b583486063d71f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Fri, 8 Jun 2018 22:38:23 +0800 Subject: [PATCH 51/59] =?UTF-8?q?=E5=90=88=E6=88=90=E8=A8=93=E7=B7=B4?= =?UTF-8?q?=E5=85=88=E6=8F=90=E6=8E=89=20#296?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 061fc714..fa4f35c4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ python: env: - TOX_ENV=tan1uan5 - TOX_ENV=hap8sing5-tsi3giam7 -- TOX_ENV=hap8sing5-hun3lian7 +# - TOX_ENV=hap8sing5-hun3lian7 - TOX_ENV=huan1ik8 - TOX_ENV=huan1ik8-gua7bun5 - TOX_ENV=huan1ik8-tsing3kui1 From 8fd7468ba299bb9f1a06b1fdefcba4aa9158fbed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Sun, 10 Jun 2018 08:53:38 +0800 Subject: [PATCH 52/59] =?UTF-8?q?=E4=BF=AE=E9=A0=90=E8=A8=AD=E8=AA=9E?= =?UTF-8?q?=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Moses\344\273\213\351\235\242.py" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\344\273\213\351\235\242.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\344\273\213\351\235\242.py" index 1ea1555e..3da2edcf 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\344\273\213\351\235\242.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Moses\344\273\213\351\235\242.py" @@ -27,7 +27,7 @@ def 正規化翻譯(self, request): if 查詢腔口 not in self.服務.支援腔口(): raise RuntimeError() except (KeyError, RuntimeError): - 查詢腔口 = '閩南語' + 查詢腔口 = '台語' try: 查詢語句 = 連線參數['查詢語句'] except KeyError: @@ -50,7 +50,7 @@ def 標漢字音標(self, request): if 查詢腔口 not in self.服務.支援腔口(): raise RuntimeError() except (KeyError, RuntimeError): - 查詢腔口 = '閩南語' + 查詢腔口 = '台語' try: 查詢語句 = 連線參數['查詢語句'] except KeyError: From 2819e94ae7e7da43848b4f7ef684d7b777e08980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Sun, 10 Jun 2018 09:06:23 +0800 Subject: [PATCH 53/59] =?UTF-8?q?=E5=8A=A0=E5=8D=B0rabbit=E7=9A=84?= =?UTF-8?q?=E7=B6=B2=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 -- tai5uan5_gian5gi2_hok8bu7/celery.py | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 68b274f3..38ec83db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,5 +9,3 @@ RUN pip3 install tox COPY . . RUN echo RABBIT_MQ_TSU2_KI1 = \'`/sbin/ip route|awk '/default/ { print $3 }'`\' >> tai5uan5_gian5gi2_hok8bu7/settings.py RUN LANG=zh_TW.utf8 tox --sitepackages -e ${TOX_ENV} - -# RUN echo TAI5TSUAN2HUA2 = \'`/sbin/ip route|awk '/default/ { print $3 }'`\' >> 設定/settings.py diff --git a/tai5uan5_gian5gi2_hok8bu7/celery.py b/tai5uan5_gian5gi2_hok8bu7/celery.py index aab81158..7dce7df1 100644 --- a/tai5uan5_gian5gi2_hok8bu7/celery.py +++ b/tai5uan5_gian5gi2_hok8bu7/celery.py @@ -17,6 +17,7 @@ except AttributeError: rabbitmq = None +print('rabbitmq', rabbitmq) app = Celery('tai5uan5_gian5gi2_hok8bu7', broker=rabbitmq) # Using a string here means the worker don't have to serialize From 4b86edcce56c13bea5ac0e0cacec4d505ef0b9b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Sun, 10 Jun 2018 09:43:30 +0800 Subject: [PATCH 54/59] =?UTF-8?q?=E7=9C=8Brabbit=E7=9A=84list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index fa4f35c4..8a6b0999 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,9 @@ branches: only: - master - "/\\d+\\.\\d+\\.\\d+/" +before_script: +- rabbitmqctl list_users +- netstat -tunlp script: - docker build -t tai5-uan5_gian5-gi2_hok8-bu7_travis --build-arg TOX_ENV=$TOX_ENV . after_success: From 29e8baca47f98d3e3cf0c4a7d2a7c317139df95c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Sun, 10 Jun 2018 10:03:38 +0800 Subject: [PATCH 55/59] =?UTF-8?q?=E6=9C=AC=E6=A9=9F=E9=A9=97=E8=AD=89rabbi?= =?UTF-8?q?t=E6=9C=83=E7=95=B6=E7=99=BB=E5=85=A5=E7=9F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 5 +++-- tai5uan5_gian5gi2_hok8bu7/celery.py | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8a6b0999..42edb8ae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,8 +19,9 @@ branches: - master - "/\\d+\\.\\d+\\.\\d+/" before_script: -- rabbitmqctl list_users -- netstat -tunlp +- rabbitmqctl add_user ti1a2 gau5tsa2 +- rabbitmqctl add_vhost hok8_bu7 +- rabbitmqctl set_permissions -p hok8_bu7 ti1a2 '.*' '.*' '.*' script: - docker build -t tai5-uan5_gian5-gi2_hok8-bu7_travis --build-arg TOX_ENV=$TOX_ENV . after_success: diff --git a/tai5uan5_gian5gi2_hok8bu7/celery.py b/tai5uan5_gian5gi2_hok8bu7/celery.py index 7dce7df1..7d05b6e8 100644 --- a/tai5uan5_gian5gi2_hok8bu7/celery.py +++ b/tai5uan5_gian5gi2_hok8bu7/celery.py @@ -11,13 +11,12 @@ 'DJANGO_SETTINGS_MODULE', 'tai5uan5_gian5gi2_hok8bu7.settings') try: - rabbitmq = 'amqp://guest:guest@{}:5672//'.format( + rabbitmq = 'amqp://ti1a2:gau5tsa2@{}:5672/hok8_bu7'.format( settings.RABBIT_MQ_TSU2_KI1 ) except AttributeError: rabbitmq = None -print('rabbitmq', rabbitmq) app = Celery('tai5uan5_gian5gi2_hok8bu7', broker=rabbitmq) # Using a string here means the worker don't have to serialize From 790533147240e8140046190dcbd28d8c38267019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Sun, 10 Jun 2018 22:03:29 +0800 Subject: [PATCH 56/59] =?UTF-8?q?rabbitmqctl=E9=9C=80=E8=A6=81sudo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 42edb8ae..07b13b99 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,9 +19,9 @@ branches: - master - "/\\d+\\.\\d+\\.\\d+/" before_script: -- rabbitmqctl add_user ti1a2 gau5tsa2 -- rabbitmqctl add_vhost hok8_bu7 -- rabbitmqctl set_permissions -p hok8_bu7 ti1a2 '.*' '.*' '.*' +- sudo rabbitmqctl add_user ti1a2 gau5tsa2 +- sudo rabbitmqctl add_vhost hok8_bu7 +- sudo rabbitmqctl set_permissions -p hok8_bu7 ti1a2 '.*' '.*' '.*' script: - docker build -t tai5-uan5_gian5-gi2_hok8-bu7_travis --build-arg TOX_ENV=$TOX_ENV . after_success: From c7141dfacc8c059993bb1ecfbea596ff4bc23df2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Sun, 10 Jun 2018 22:20:39 +0800 Subject: [PATCH 57/59] ai ing tsuan-pian-ik e --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 38ec83db..2b08f13c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM i3thuan5/tai5-uan5_gian5-gi2_kang1-ku7 +FROM i3thuan5/tai5-uan5_gian5-gi2_kang1-ku7:tsuan MAINTAINER i3thuan5 ARG TOX_ENV From 965b8e5fe10e133600a6a7b92cb205b400a5270d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Mon, 11 Jun 2018 11:49:04 +0800 Subject: [PATCH 58/59] =?UTF-8?q?=E5=85=88=E7=94=A8=E8=88=8A=E7=9A=84?= =?UTF-8?q?=E9=81=8E=E8=A9=A6=E9=A9=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2b08f13c..1980b7dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM i3thuan5/tai5-uan5_gian5-gi2_kang1-ku7:tsuan +FROM i3thuan5/tai5-uan5_gian5-gi2_kang1-ku7:0.6.40 MAINTAINER i3thuan5 ARG TOX_ENV From c6d1553fd923d76b0db2407b572e1285951bdd3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E4=B8=9E=E5=AE=8F?= Date: Mon, 11 Jun 2018 12:58:59 +0800 Subject: [PATCH 59/59] =?UTF-8?q?=E5=85=88ka=20=E7=BF=BB=E5=A4=96=E8=AA=9E?= =?UTF-8?q?=E9=97=9C=E6=8E=89=20#298?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 07b13b99..8d6ae533 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ env: - TOX_ENV=hap8sing5-tsi3giam7 # - TOX_ENV=hap8sing5-hun3lian7 - TOX_ENV=huan1ik8 -- TOX_ENV=huan1ik8-gua7bun5 +# - TOX_ENV=huan1ik8-gua7bun5 - TOX_ENV=huan1ik8-tsing3kui1 - TOX_ENV=flake8 services: