コード例 #1
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
    def test_at(self):
        # https://twitter.com/vinta
        self.assertEqual(pangu.spacing('前面@vinta後面'), u'前面 @vinta 後面')
        self.assertEqual(pangu.spacing('前面 @vinta 後面'), u'前面 @vinta 後面')

        # http://weibo.com/vintalines
        self.assertEqual(pangu.spacing('前面@陳上進 後面'), u'前面 @陳上進 後面')
        self.assertEqual(pangu.spacing('前面 @陳上進 後面'), u'前面 @陳上進 後面')
        self.assertEqual(pangu.spacing('前面 @陳上進tail'), u'前面 @陳上進 tail')
コード例 #2
0
    def test_at(self):
        # https://twitter.com/vinta
        self.assertEqual(pangu.spacing('前面@vinta後面'), u'前面 @vinta 後面')
        self.assertEqual(pangu.spacing('前面 @vinta 後面'), u'前面 @vinta 後面')

        # http://weibo.com/vintalines
        self.assertEqual(pangu.spacing('前面@陳上進 後面'), u'前面 @陳上進 後面')
        self.assertEqual(pangu.spacing('前面 @陳上進 後面'), u'前面 @陳上進 後面')
        self.assertEqual(pangu.spacing('前面 @陳上進tail'), u'前面 @陳上進 tail')
コード例 #3
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
    def test_special_characters(self):
        # \u201c and \u201d
        self.assertEqual(pangu.spacing('前面“中文123漢字”後面'), u'前面 “中文 123 漢字” 後面')

        # \u2026
        self.assertEqual(pangu.spacing('前面…後面'), u'前面… 後面')
        self.assertEqual(pangu.spacing('前面……後面'), u'前面…… 後面')

        # \u2027
        self.assertEqual(pangu.spacing('前面‧後面'), u'前面 ‧ 後面')
コード例 #4
0
    def test_special_characters(self):
        # \u201c and \u201d
        self.assertEqual(pangu.spacing('前面“中文123漢字”後面'), u'前面 “中文 123 漢字” 後面')

        # \u2026
        self.assertEqual(pangu.spacing('前面…後面'), u'前面… 後面')
        self.assertEqual(pangu.spacing('前面……後面'), u'前面…… 後面')

        # \u2027
        self.assertEqual(pangu.spacing('前面‧後面'), u'前面 ‧ 後面')
コード例 #5
0
ファイル: test_pangu.py プロジェクト: timgates42/pangu.py
 def test_parentheses(self):
     self.assertEqual(pangu.spacing('前面(中文123漢字)後面'), '前面 (中文 123 漢字) 後面')
     self.assertEqual(pangu.spacing('前面(中文123)後面'), '前面 (中文 123) 後面')
     self.assertEqual(pangu.spacing('前面(123漢字)後面'), '前面 (123 漢字) 後面')
     self.assertEqual(pangu.spacing('前面(中文123) tail'), '前面 (中文 123) tail')
     self.assertEqual(pangu.spacing('head (中文123漢字)後面'), 'head (中文 123 漢字) 後面')
     self.assertEqual(pangu.spacing('head (中文123漢字) tail'), 'head (中文 123 漢字) tail')
     self.assertEqual(pangu.spacing('(or simply "React")'), '(or simply "React")')
     self.assertEqual(pangu.spacing("OperationalError: (2006, 'MySQL server has gone away')"), "OperationalError: (2006, 'MySQL server has gone away')")
     self.assertEqual(pangu.spacing('我看过的电影(1404)'), '我看过的电影 (1404)')
     self.assertEqual(pangu.spacing('Chang Stream(变更记录流)是指collection(数据库集合)的变更事件流'), 'Chang Stream (变更记录流) 是指 collection (数据库集合) 的变更事件流')
コード例 #6
0
ファイル: test_pangu.py プロジェクト: timgates42/pangu.py
    def test_slash(self):
        self.assertEqual(pangu.spacing('前面/後面'), '前面 / 後面')
        self.assertEqual(pangu.spacing('前面 / 後面'), '前面 / 後面')
        self.assertEqual(pangu.spacing('Vinta/Mollie'), 'Vinta/Mollie')
        self.assertEqual(pangu.spacing('Vinta/陳上進'), 'Vinta / 陳上進')
        self.assertEqual(pangu.spacing('陳上進/Vinta'), '陳上進 / Vinta')
        self.assertEqual(pangu.spacing('Mollie/陳上進/Vinta'), 'Mollie / 陳上進 / Vinta')

        self.assertEqual(pangu.spacing('得到一個A/B的結果'), '得到一個 A/B 的結果')
        self.assertEqual(pangu.spacing('2016-12-26(奇幻电影节) / 2017-01-20(美国) / 詹姆斯麦卡沃伊'), '2016-12-26 (奇幻电影节) / 2017-01-20 (美国) / 詹姆斯麦卡沃伊')
        self.assertEqual(pangu.spacing('/home/和/root是Linux中的頂級目錄'), '/home/ 和 /root 是 Linux 中的頂級目錄')
        self.assertEqual(pangu.spacing('當你用cat和od指令查看/dev/random和/dev/urandom的內容時'), '當你用 cat 和 od 指令查看 /dev/random 和 /dev/urandom 的內容時')
コード例 #7
0
ファイル: say.py プロジェクト: gumblex/tg-chatdig
 def say(self, context=(), continuewords=()):
     context = context or continuewords
     ctxvoc = list(frozenset(self.voc).intersection(map(self.voc.__getitem__, frozenset(itertools.chain.from_iterable(map(unpackvals, map(self.ctx.__getitem__, filter(None, map(self.indexword, frozenset(context)))))))))) or self.voc if context else self.voc
     out = []
     stack = list(continuewords)
     if stack:
         history = ' '.join(stack) + ' '
         idx, w = weighted_choice_king(
             10**self.lm.score(history + c, 1, 0) for c in ctxvoc)
     else:
         idx, w = weighted_choice_king(
             10**self.lm.score(c, 1, 0) for c in ctxvoc)
     out.append(ctxvoc[idx])
     stack.append(ctxvoc[idx])
     while 1:
         bos = (len(stack) <= self.lm.order + 2)
         history = ' '.join(stack[-self.lm.order - 2:]) + ' '
         idx, w = weighted_choice_king(
             10**self.lm.score(history + ctxvoc[k // 2], bos, k % 2) for k in range(len(ctxvoc) * 2))
         c = ctxvoc[idx // 2]
         out.append(c)
         stack.append(c)
         if idx % 2 or self.stopfn(out):
             break
     return pangu.spacing(''.join(joinword(out)))
コード例 #8
0
ファイル: say.py プロジェクト: imbushuo/tg-chatdig
def generate_word(lm, order, ctxvoc, cont=()):
    out = []
    stack = list(cont)
    if stack:
        history = ' '.join(stack) + ' '
        idx, w = weighted_choice_king(
            10**lm.score(history + c, 1, 0) for c in ctxvoc)
    else:
        idx, w = weighted_choice_king(10**lm.score(c, 1, 0) for c in ctxvoc)
    # sys.stdout.buffer.write(ctxvoc[idx].encode('utf-8'))
    out.append(ctxvoc[idx])
    stack.append(ctxvoc[idx])
    while 1:
        bos = (len(stack) <= order + 2)
        history = ' '.join(stack[-order - 2:]) + ' '
        idx, w = weighted_choice_king(
            10**lm.score(history + ctxvoc[k // 2], bos, k % 2) for k in range(len(ctxvoc) * 2))
        c = ctxvoc[idx // 2]
        # cprint(c)
        out.append(c)
        stack.append(c)
        if idx % 2 or (len(out) > 3 and all(i == out[-1] for i in out[-3:])):
            # cprint('\n')
            break
    return pangu.spacing(''.join(joinword(out)))
コード例 #9
0
    def detokenize(self, text: List[str]) -> str:
        RE_WS_IN_FW = re.compile(
            r'([\u2018\u2019\u201c\u201d\u2e80-\u312f\u3200-\u32ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff00-\uffef])\s+(?=[\u2018\u2019\u201c\u201d\u2e80-\u312f\u3200-\u32ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff00-\uffef])'
        )

        detokenize = lambda s: spacing(RE_WS_IN_FW.sub(r'\1', s)).strip()
        return detokenize(' '.join(text))
コード例 #10
0
ファイル: test_pangu.py プロジェクト: timgates42/pangu.py
 def test_colon(self):
     self.assertEqual(pangu.spacing('前面:後面'), '前面:後面')
     self.assertEqual(pangu.spacing('前面 : 後面'), '前面:後面')
     self.assertEqual(pangu.spacing('前面: 後面'), '前面:後面')
     self.assertEqual(pangu.spacing('前面 :後面'), '前面:後面')
     self.assertEqual(pangu.spacing('電話:123456789'), '電話:123456789')
     self.assertEqual(pangu.spacing('前面:)後面'), '前面:) 後面')
     self.assertEqual(pangu.spacing('前面:I have no idea後面'), '前面:I have no idea 後面')
     self.assertEqual(pangu.spacing('前面: I have no idea後面'), '前面: I have no idea 後面')
コード例 #11
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
    def test_spacing(self):
        self.assertEqual(pangu.spacing('新八的構造成分有95%是眼鏡、3%是水、2%是垃圾'), u'新八的構造成分有 95% 是眼鏡、3% 是水、2% 是垃圾')
        self.assertEqual(pangu.spacing(u'新八的構造成分有95%是眼鏡、3%是水、2%是垃圾'), u'新八的構造成分有 95% 是眼鏡、3% 是水、2% 是垃圾')

        self.assertEqual(pangu.spacing('所以,請問Jackey的鼻子有幾個?3.14個!'), u'所以, 請問 Jackey 的鼻子有幾個? 3.14 個!')
        self.assertEqual(pangu.spacing(u'所以,請問Jackey的鼻子有幾個?3.14個!'), u'所以, 請問 Jackey 的鼻子有幾個? 3.14 個!')

        self.assertEqual(pangu.spacing('JUST WE就是JUST WE,既不偉大也不卑微!'), u'JUST WE 就是 JUST WE,既不偉大也不卑微!')
        self.assertEqual(pangu.spacing(u'JUST WE就是JUST WE,既不偉大也不卑微!'), u'JUST WE 就是 JUST WE,既不偉大也不卑微!')

        self.assertEqual(pangu.spacing('搭載MP3播放器,連續播放時數最長達到124小時的超強利刃……菊一文字RX-7!'), u'搭載 MP3 播放器,連續播放時數最長達到 124 小時的超強利刃…… 菊一文字 RX-7!')
        self.assertEqual(pangu.spacing(u'搭載MP3播放器,連續播放時數最長達到124小時的超強利刃……菊一文字RX-7!'), u'搭載 MP3 播放器,連續播放時數最長達到 124 小時的超強利刃…… 菊一文字 RX-7!')

        self.assertEqual(pangu.spacing('V'), u'V')
コード例 #12
0
    def test_spacing(self):
        self.assertEqual(pangu.spacing('新八的構造成分有95%是眼鏡、3%是水、2%是垃圾'), u'新八的構造成分有 95% 是眼鏡、3% 是水、2% 是垃圾')
        self.assertEqual(pangu.spacing(u'新八的構造成分有95%是眼鏡、3%是水、2%是垃圾'), u'新八的構造成分有 95% 是眼鏡、3% 是水、2% 是垃圾')

        self.assertEqual(pangu.spacing('所以,請問Jackey的鼻子有幾個?3.14個!'), u'所以, 請問 Jackey 的鼻子有幾個? 3.14 個!')
        self.assertEqual(pangu.spacing(u'所以,請問Jackey的鼻子有幾個?3.14個!'), u'所以, 請問 Jackey 的鼻子有幾個? 3.14 個!')

        self.assertEqual(pangu.spacing('JUST WE就是JUST WE,既不偉大也不卑微!'), u'JUST WE 就是 JUST WE,既不偉大也不卑微!')
        self.assertEqual(pangu.spacing(u'JUST WE就是JUST WE,既不偉大也不卑微!'), u'JUST WE 就是 JUST WE,既不偉大也不卑微!')

        self.assertEqual(pangu.spacing('搭載MP3播放器,連續播放時數最長達到124小時的超強利刃……菊一文字RX-7!'), u'搭載 MP3 播放器,連續播放時數最長達到 124 小時的超強利刃…… 菊一文字 RX-7!')
        self.assertEqual(pangu.spacing(u'搭載MP3播放器,連續播放時數最長達到124小時的超強利刃……菊一文字RX-7!'), u'搭載 MP3 播放器,連續播放時數最長達到 124 小時的超強利刃…… 菊一文字 RX-7!')

        self.assertEqual(pangu.spacing('V'), u'V')
コード例 #13
0
 def test_single_quote(self):
     self.assertEqual(u"前面 '中文 123 漢字' 後面", pangu.spacing("前面'中文123漢字'後面"))
     self.assertEqual(u"前面 '中文 123' 後面", pangu.spacing("前面'中文123'後面"))
     self.assertEqual(u"前面 '123 漢字' 後面", pangu.spacing("前面'123漢字'後面"))
     self.assertEqual(u"前面 '中文 123 漢字' tail", pangu.spacing("前面'中文123漢字' tail"))
     self.assertEqual(u"head '中文 123 漢字' 後面", pangu.spacing("head '中文123漢字'後面"))
     self.assertEqual(u"head '中文 123 漢字' tail", pangu.spacing("head '中文123漢字' tail"))
     self.assertEqual(u"陳上進 likes 林依諾's status.", pangu.spacing("陳上進 likes 林依諾's status."))
コード例 #14
0
ファイル: test_pangu.py プロジェクト: timgates42/pangu.py
 def test_minus(self):
     self.assertEqual(pangu.spacing('前面-後面'), '前面 - 後面')
     self.assertEqual(pangu.spacing('前面 - 後面'), '前面 - 後面')
     self.assertEqual(pangu.spacing('Vinta-Mollie'), 'Vinta-Mollie')
     self.assertEqual(pangu.spacing('Vinta-陳上進'), 'Vinta - 陳上進')
     self.assertEqual(pangu.spacing('陳上進-Vinta'), '陳上進 - Vinta')
     self.assertEqual(pangu.spacing('得到一個A-B的結果'), '得到一個 A-B 的結果')
     self.assertEqual(pangu.spacing('长者的智慧和复杂的维斯特洛- 文章'), '长者的智慧和复杂的维斯特洛 - 文章')
コード例 #15
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_plus(self):
     self.assertEqual(pangu.spacing('前面+後面'), u'前面 + 後面')
     self.assertEqual(pangu.spacing('前面 + 後面'), u'前面 + 後面')
     self.assertEqual(pangu.spacing('Vinta+Mollie'), u'Vinta+Mollie')
     self.assertEqual(pangu.spacing('Vinta+陳上進'), u'Vinta + 陳上進')
     self.assertEqual(pangu.spacing('陳上進+Vinta'), u'陳上進 + Vinta')
     self.assertEqual(pangu.spacing('得到一個A+B的結果'), u'得到一個 A+B 的結果')
     self.assertEqual(pangu.spacing('得到一個C++的結果'), u'得到一個 C++ 的結果')
コード例 #16
0
 def test_plus(self):
     self.assertEqual(pangu.spacing('前面+後面'), u'前面 + 後面')
     self.assertEqual(pangu.spacing('前面 + 後面'), u'前面 + 後面')
     self.assertEqual(pangu.spacing('Vinta+Mollie'), u'Vinta+Mollie')
     self.assertEqual(pangu.spacing('Vinta+陳上進'), u'Vinta + 陳上進')
     self.assertEqual(pangu.spacing('陳上進+Vinta'), u'陳上進 + Vinta')
     self.assertEqual(pangu.spacing('得到一個A+B的結果'), u'得到一個 A+B 的結果')
     self.assertEqual(pangu.spacing('得到一個C++的結果'), u'得到一個 C++ 的結果')
コード例 #17
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_single_quote(self):
     self.assertEqual(u"前面 '中文 123 漢字' 後面", pangu.spacing("前面'中文123漢字'後面"))
     self.assertEqual(u"前面 '中文 123' 後面", pangu.spacing("前面'中文123'後面"))
     self.assertEqual(u"前面 '123 漢字' 後面", pangu.spacing("前面'123漢字'後面"))
     self.assertEqual(u"前面 '中文 123 漢字' tail", pangu.spacing("前面'中文123漢字' tail"))
     self.assertEqual(u"head '中文 123 漢字' 後面", pangu.spacing("head '中文123漢字'後面"))
     self.assertEqual(u"head '中文 123 漢字' tail", pangu.spacing("head '中文123漢字' tail"))
     self.assertEqual(u"陳上進 likes 林依諾's status.", pangu.spacing("陳上進 likes 林依諾's status."))
コード例 #18
0
ファイル: test_pangu.py プロジェクト: timgates42/pangu.py
    def test_greater_than(self):
        self.assertEqual(pangu.spacing('前面>後面'), '前面 > 後面')
        self.assertEqual(pangu.spacing('前面 > 後面'), '前面 > 後面')
        self.assertEqual(pangu.spacing('Vinta>Mollie'), 'Vinta>Mollie')
        self.assertEqual(pangu.spacing('Vinta>陳上進'), 'Vinta > 陳上進')
        self.assertEqual(pangu.spacing('陳上進>Vinta'), '陳上進 > Vinta')
        self.assertEqual(pangu.spacing('得到一個A>B的結果'), '得到一個 A>B 的結果')

        self.assertEqual(pangu.spacing('得到一個A>B的結果'), '得到一個 A>B 的結果')
コード例 #19
0
 def test_braces(self):
     self.assertEqual(pangu.spacing('前面{中文123漢字}後面'), u'前面 {中文 123 漢字} 後面')
     self.assertEqual(pangu.spacing('前面{中文123}後面'), u'前面 {中文 123} 後面')
     self.assertEqual(pangu.spacing('前面{123漢字}後面'), u'前面 {123 漢字} 後面')
     self.assertEqual(pangu.spacing('前面{中文123漢字} tail'), u'前面 {中文 123 漢字} tail')
     self.assertEqual(pangu.spacing('head {中文123漢字}後面'), u'head {中文 123 漢字} 後面')
     self.assertEqual(pangu.spacing('head {中文123漢字} tail'), u'head {中文 123 漢字} tail')
コード例 #20
0
 def test_slash(self):
     self.assertEqual(pangu.spacing('前面/後面'), u'前面 / 後面')
     self.assertEqual(pangu.spacing('前面 / 後面'), u'前面 / 後面')
     self.assertEqual(pangu.spacing('Vinta/Mollie'), u'Vinta/Mollie')
     self.assertEqual(pangu.spacing('Vinta/陳上進'), u'Vinta / 陳上進')
     self.assertEqual(pangu.spacing('陳上進/Vinta'), u'陳上進 / Vinta')
     self.assertEqual(pangu.spacing('得到一個A/B的結果'), u'得到一個 A/B 的結果')
コード例 #21
0
 def test_less_than(self):
     self.assertEqual(pangu.spacing('前面<後面'), u'前面 < 後面')
     self.assertEqual(pangu.spacing('前面 < 後面'), u'前面 < 後面')
     self.assertEqual(pangu.spacing('Vinta<Mollie'), u'Vinta<Mollie')
     self.assertEqual(pangu.spacing('Vinta<陳上進'), u'Vinta < 陳上進')
     self.assertEqual(pangu.spacing('陳上進<Vinta'), u'陳上進 < Vinta')
     self.assertEqual(pangu.spacing('得到一個A<B的結果'), u'得到一個 A<B 的結果')
コード例 #22
0
 def test_pipe(self):
     self.assertEqual(pangu.spacing('前面|後面'), u'前面 | 後面')
     self.assertEqual(pangu.spacing('前面 | 後面'), u'前面 | 後面')
     self.assertEqual(pangu.spacing('Vinta|Mollie'), u'Vinta|Mollie')
     self.assertEqual(pangu.spacing('Vinta|陳上進'), u'Vinta | 陳上進')
     self.assertEqual(pangu.spacing('陳上進|Vinta'), u'陳上進 | Vinta')
     self.assertEqual(pangu.spacing('得到一個A|B的結果'), u'得到一個 A|B 的結果')
コード例 #23
0
 def test_equal(self):
     self.assertEqual(pangu.spacing('前面=後面'), u'前面 = 後面')
     self.assertEqual(pangu.spacing('前面 = 後面'), u'前面 = 後面')
     self.assertEqual(pangu.spacing('Vinta=Mollie'), u'Vinta=Mollie')
     self.assertEqual(pangu.spacing('Vinta=陳上進'), u'Vinta = 陳上進')
     self.assertEqual(pangu.spacing('陳上進=Vinta'), u'陳上進 = Vinta')
     self.assertEqual(pangu.spacing('得到一個A=B的結果'), u'得到一個 A=B 的結果')
コード例 #24
0
 def test_minus(self):
     self.assertEqual(pangu.spacing('前面-後面'), u'前面 - 後面')
     self.assertEqual(pangu.spacing('前面 - 後面'), u'前面 - 後面')
     self.assertEqual(pangu.spacing('Vinta-Mollie'), u'Vinta-Mollie')
     self.assertEqual(pangu.spacing('Vinta-陳上進'), u'Vinta - 陳上進')
     self.assertEqual(pangu.spacing('陳上進-Vinta'), u'陳上進 - Vinta')
     self.assertEqual(pangu.spacing('得到一個A-B的結果'), u'得到一個 A-B 的結果')
コード例 #25
0
 def test_asterisk(self):
     self.assertEqual(pangu.spacing('前面*後面'), u'前面 * 後面')
     self.assertEqual(pangu.spacing('前面 * 後面'), u'前面 * 後面')
     self.assertEqual(pangu.spacing('Vinta*Mollie'), u'Vinta*Mollie')
     self.assertEqual(pangu.spacing('Vinta*陳上進'), u'Vinta * 陳上進')
     self.assertEqual(pangu.spacing('陳上進*Vinta'), u'陳上進 * Vinta')
     self.assertEqual(pangu.spacing('得到一個A*B的結果'), u'得到一個 A*B 的結果')
コード例 #26
0
 def test_ampersand(self):
     self.assertEqual(pangu.spacing('前面&後面'), u'前面 & 後面')
     self.assertEqual(pangu.spacing('前面 & 後面'), u'前面 & 後面')
     self.assertEqual(pangu.spacing('Vinta&Mollie'), u'Vinta&Mollie')
     self.assertEqual(pangu.spacing('Vinta&陳上進'), u'Vinta & 陳上進')
     self.assertEqual(pangu.spacing('陳上進&Vinta'), u'陳上進 & Vinta')
     self.assertEqual(pangu.spacing('得到一個A&B的結果'), u'得到一個 A&B 的結果')
コード例 #27
0
 def test_brackets(self):
     self.assertEqual(pangu.spacing('前面[中文123漢字]後面'), u'前面 [中文 123 漢字] 後面')
     self.assertEqual(pangu.spacing('前面[中文123]後面'), u'前面 [中文 123] 後面')
     self.assertEqual(pangu.spacing('前面[123漢字]後面'), u'前面 [123 漢字] 後面')
     self.assertEqual(pangu.spacing('前面[中文123漢字] tail'), u'前面 [中文 123 漢字] tail')
     self.assertEqual(pangu.spacing('head [中文123漢字]後面'), u'head [中文 123 漢字] 後面')
     self.assertEqual(pangu.spacing('head [中文123漢字] tail'), u'head [中文 123 漢字] tail')
コード例 #28
0
 def test_quote(self):
     self.assertEqual(pangu.spacing('前面"中文123漢字"後面'), u'前面 "中文 123 漢字" 後面')
     self.assertEqual(pangu.spacing('前面"中文123"後面'), u'前面 "中文 123" 後面')
     self.assertEqual(pangu.spacing('前面"123漢字"後面'), u'前面 "123 漢字" 後面')
     self.assertEqual(pangu.spacing('前面"中文123漢字" tail'), u'前面 "中文 123 漢字" tail')
     self.assertEqual(pangu.spacing('head "中文123漢字"後面'), u'head "中文 123 漢字" 後面')
     self.assertEqual(pangu.spacing('head "中文123漢字" tail'), u'head "中文 123 漢字" tail')
コード例 #29
0
 def test_parentheses(self):
     self.assertEqual(pangu.spacing('前面(中文123漢字)後面'), u'前面 (中文 123 漢字) 後面')
     self.assertEqual(pangu.spacing('前面(中文123)後面'), u'前面 (中文 123) 後面')
     self.assertEqual(pangu.spacing('前面(123漢字)後面'), u'前面 (123 漢字) 後面')
     self.assertEqual(pangu.spacing('前面(中文123漢字) tail'), u'前面 (中文 123 漢字) tail')
     self.assertEqual(pangu.spacing('head (中文123漢字)後面'), u'head (中文 123 漢字) 後面')
     self.assertEqual(pangu.spacing('head (中文123漢字) tail'), u'head (中文 123 漢字) tail')
コード例 #30
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_minus(self):
     self.assertEqual(pangu.spacing('前面-後面'), u'前面 - 後面')
     self.assertEqual(pangu.spacing('前面 - 後面'), u'前面 - 後面')
     self.assertEqual(pangu.spacing('Vinta-Mollie'), u'Vinta-Mollie')
     self.assertEqual(pangu.spacing('Vinta-陳上進'), u'Vinta - 陳上進')
     self.assertEqual(pangu.spacing('陳上進-Vinta'), u'陳上進 - Vinta')
     self.assertEqual(pangu.spacing('得到一個A-B的結果'), u'得到一個 A-B 的結果')
コード例 #31
0
 def test_less_than_and_greater_than(self):
     self.assertEqual(pangu.spacing('前面<中文123漢字>後面'), u'前面 <中文 123 漢字> 後面')
     self.assertEqual(pangu.spacing('前面<中文123>後面'), u'前面 <中文 123> 後面')
     self.assertEqual(pangu.spacing('前面<123漢字>後面'), u'前面 <123 漢字> 後面')
     self.assertEqual(pangu.spacing('前面<中文123漢字> tail'), u'前面 <中文 123 漢字> tail')
     self.assertEqual(pangu.spacing('head <中文123漢字>後面'), u'head <中文 123 漢字> 後面')
     self.assertEqual(pangu.spacing('head <中文123漢字> tail'), u'head <中文 123 漢字> tail')
コード例 #32
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_parentheses(self):
     self.assertEqual(pangu.spacing('前面(中文123漢字)後面'), u'前面 (中文 123 漢字) 後面')
     self.assertEqual(pangu.spacing('前面(中文123)後面'), u'前面 (中文 123) 後面')
     self.assertEqual(pangu.spacing('前面(123漢字)後面'), u'前面 (123 漢字) 後面')
     self.assertEqual(pangu.spacing('前面(中文123漢字) tail'), u'前面 (中文 123 漢字) tail')
     self.assertEqual(pangu.spacing('head (中文123漢字)後面'), u'head (中文 123 漢字) 後面')
     self.assertEqual(pangu.spacing('head (中文123漢字) tail'), u'head (中文 123 漢字) tail')
コード例 #33
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_asterisk(self):
     self.assertEqual(pangu.spacing('前面*後面'), u'前面 * 後面')
     self.assertEqual(pangu.spacing('前面 * 後面'), u'前面 * 後面')
     self.assertEqual(pangu.spacing('Vinta*Mollie'), u'Vinta*Mollie')
     self.assertEqual(pangu.spacing('Vinta*陳上進'), u'Vinta * 陳上進')
     self.assertEqual(pangu.spacing('陳上進*Vinta'), u'陳上進 * Vinta')
     self.assertEqual(pangu.spacing('得到一個A*B的結果'), u'得到一個 A*B 的結果')
コード例 #34
0
 def test_hash(self):
     self.assertEqual(pangu.spacing('前面#H2G2後面'), u'前面 #H2G2 後面')
     self.assertEqual(pangu.spacing('前面#銀河便車指南 後面'), u'前面 #銀河便車指南 後面')
     self.assertEqual(pangu.spacing('前面#銀河便車指南tail'), u'前面 #銀河便車指南 tail')
     self.assertEqual(pangu.spacing('前面#銀河公車指南 #銀河拖吊車指南 後面'), u'前面 #銀河公車指南 #銀河拖吊車指南 後面')
     self.assertEqual(pangu.spacing('前面#H2G2#後面'), u'前面 #H2G2# 後面')
     self.assertEqual(pangu.spacing('前面#銀河閃電霹靂車指南#後面'), u'前面 #銀河閃電霹靂車指南# 後面')
コード例 #35
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_ampersand(self):
     self.assertEqual(pangu.spacing('前面&後面'), u'前面 & 後面')
     self.assertEqual(pangu.spacing('前面 & 後面'), u'前面 & 後面')
     self.assertEqual(pangu.spacing('Vinta&Mollie'), u'Vinta&Mollie')
     self.assertEqual(pangu.spacing('Vinta&陳上進'), u'Vinta & 陳上進')
     self.assertEqual(pangu.spacing('陳上進&Vinta'), u'陳上進 & Vinta')
     self.assertEqual(pangu.spacing('得到一個A&B的結果'), u'得到一個 A&B 的結果')
コード例 #36
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_brackets(self):
     self.assertEqual(pangu.spacing('前面[中文123漢字]後面'), u'前面 [中文 123 漢字] 後面')
     self.assertEqual(pangu.spacing('前面[中文123]後面'), u'前面 [中文 123] 後面')
     self.assertEqual(pangu.spacing('前面[123漢字]後面'), u'前面 [123 漢字] 後面')
     self.assertEqual(pangu.spacing('前面[中文123漢字] tail'), u'前面 [中文 123 漢字] tail')
     self.assertEqual(pangu.spacing('head [中文123漢字]後面'), u'head [中文 123 漢字] 後面')
     self.assertEqual(pangu.spacing('head [中文123漢字] tail'), u'head [中文 123 漢字] tail')
コード例 #37
0
ファイル: test_pangu.py プロジェクト: timgates42/pangu.py
 def test_comma(self):
     self.assertEqual(pangu.spacing('前面,後面'), '前面,後面')
     self.assertEqual(pangu.spacing('前面 , 後面'), '前面,後面')
     self.assertEqual(pangu.spacing('前面, 後面'), '前面,後面')
     self.assertEqual(pangu.spacing('前面 ,後面'), '前面,後面')
     self.assertEqual(pangu.spacing('前面,'), '前面,')
     self.assertEqual(pangu.spacing('前面, '), '前面,')
コード例 #38
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_less_than(self):
     self.assertEqual(pangu.spacing('前面<後面'), u'前面 < 後面')
     self.assertEqual(pangu.spacing('前面 < 後面'), u'前面 < 後面')
     self.assertEqual(pangu.spacing('Vinta<Mollie'), u'Vinta<Mollie')
     self.assertEqual(pangu.spacing('Vinta<陳上進'), u'Vinta < 陳上進')
     self.assertEqual(pangu.spacing('陳上進<Vinta'), u'陳上進 < Vinta')
     self.assertEqual(pangu.spacing('得到一個A<B的結果'), u'得到一個 A<B 的結果')
コード例 #39
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_greater_than(self):
     self.assertEqual(pangu.spacing('前面>後面'), u'前面 > 後面')
     self.assertEqual(pangu.spacing('前面 > 後面'), u'前面 > 後面')
     self.assertEqual(pangu.spacing('Vinta>Mollie'), u'Vinta>Mollie')
     self.assertEqual(pangu.spacing('Vinta>陳上進'), u'Vinta > 陳上進')
     self.assertEqual(pangu.spacing('陳上進>Vinta'), u'陳上進 > Vinta')
     self.assertEqual(pangu.spacing('得到一個A>B的結果'), u'得到一個 A>B 的結果')
コード例 #40
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_slash(self):
     self.assertEqual(pangu.spacing('前面/後面'), u'前面 / 後面')
     self.assertEqual(pangu.spacing('前面 / 後面'), u'前面 / 後面')
     self.assertEqual(pangu.spacing('Vinta/Mollie'), u'Vinta/Mollie')
     self.assertEqual(pangu.spacing('Vinta/陳上進'), u'Vinta / 陳上進')
     self.assertEqual(pangu.spacing('陳上進/Vinta'), u'陳上進 / Vinta')
     self.assertEqual(pangu.spacing('得到一個A/B的結果'), u'得到一個 A/B 的結果')
コード例 #41
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_less_than_and_greater_than(self):
     self.assertEqual(pangu.spacing('前面<中文123漢字>後面'), u'前面 <中文 123 漢字> 後面')
     self.assertEqual(pangu.spacing('前面<中文123>後面'), u'前面 <中文 123> 後面')
     self.assertEqual(pangu.spacing('前面<123漢字>後面'), u'前面 <123 漢字> 後面')
     self.assertEqual(pangu.spacing('前面<中文123漢字> tail'), u'前面 <中文 123 漢字> tail')
     self.assertEqual(pangu.spacing('head <中文123漢字>後面'), u'head <中文 123 漢字> 後面')
     self.assertEqual(pangu.spacing('head <中文123漢字> tail'), u'head <中文 123 漢字> tail')
コード例 #42
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_hash(self):
     self.assertEqual(pangu.spacing('前面#H2G2後面'), u'前面 #H2G2 後面')
     self.assertEqual(pangu.spacing('前面#銀河便車指南 後面'), u'前面 #銀河便車指南 後面')
     self.assertEqual(pangu.spacing('前面#銀河便車指南tail'), u'前面 #銀河便車指南 tail')
     self.assertEqual(pangu.spacing('前面#銀河公車指南 #銀河拖吊車指南 後面'), u'前面 #銀河公車指南 #銀河拖吊車指南 後面')
     self.assertEqual(pangu.spacing('前面#H2G2#後面'), u'前面 #H2G2# 後面')
     self.assertEqual(pangu.spacing('前面#銀河閃電霹靂車指南#後面'), u'前面 #銀河閃電霹靂車指南# 後面')
コード例 #43
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_quote(self):
     self.assertEqual(pangu.spacing('前面"中文123漢字"後面'), u'前面 "中文 123 漢字" 後面')
     self.assertEqual(pangu.spacing('前面"中文123"後面'), u'前面 "中文 123" 後面')
     self.assertEqual(pangu.spacing('前面"123漢字"後面'), u'前面 "123 漢字" 後面')
     self.assertEqual(pangu.spacing('前面"中文123漢字" tail'), u'前面 "中文 123 漢字" tail')
     self.assertEqual(pangu.spacing('head "中文123漢字"後面'), u'head "中文 123 漢字" 後面')
     self.assertEqual(pangu.spacing('head "中文123漢字" tail'), u'head "中文 123 漢字" tail')
コード例 #44
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_pipe(self):
     self.assertEqual(pangu.spacing('前面|後面'), u'前面 | 後面')
     self.assertEqual(pangu.spacing('前面 | 後面'), u'前面 | 後面')
     self.assertEqual(pangu.spacing('Vinta|Mollie'), u'Vinta|Mollie')
     self.assertEqual(pangu.spacing('Vinta|陳上進'), u'Vinta | 陳上進')
     self.assertEqual(pangu.spacing('陳上進|Vinta'), u'陳上進 | Vinta')
     self.assertEqual(pangu.spacing('得到一個A|B的結果'), u'得到一個 A|B 的結果')
コード例 #45
0
ファイル: test_pangu.py プロジェクト: timgates42/pangu.py
 def test_hash(self):
     self.assertEqual(pangu.spacing('前面#後面'), '前面 #後面')
     self.assertEqual(pangu.spacing('前面C#後面'), '前面 C# 後面')
     self.assertEqual(pangu.spacing('前面#H2G2後面'), '前面 #H2G2 後面')
     self.assertEqual(pangu.spacing('前面 #銀河便車指南 後面'), '前面 #銀河便車指南 後面')
     self.assertEqual(pangu.spacing('前面#銀河便車指南 後面'), '前面 #銀河便車指南 後面')
     self.assertEqual(pangu.spacing('前面#銀河公車指南 #銀河拖吊車指南 後面'), '前面 #銀河公車指南 #銀河拖吊車指南 後面')
コード例 #46
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_braces(self):
     self.assertEqual(pangu.spacing('前面{中文123漢字}後面'), u'前面 {中文 123 漢字} 後面')
     self.assertEqual(pangu.spacing('前面{中文123}後面'), u'前面 {中文 123} 後面')
     self.assertEqual(pangu.spacing('前面{123漢字}後面'), u'前面 {123 漢字} 後面')
     self.assertEqual(pangu.spacing('前面{中文123漢字} tail'), u'前面 {中文 123 漢字} tail')
     self.assertEqual(pangu.spacing('head {中文123漢字}後面'), u'head {中文 123 漢字} 後面')
     self.assertEqual(pangu.spacing('head {中文123漢字} tail'), u'head {中文 123 漢字} tail')
コード例 #47
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_equal(self):
     self.assertEqual(pangu.spacing('前面=後面'), u'前面 = 後面')
     self.assertEqual(pangu.spacing('前面 = 後面'), u'前面 = 後面')
     self.assertEqual(pangu.spacing('Vinta=Mollie'), u'Vinta=Mollie')
     self.assertEqual(pangu.spacing('Vinta=陳上進'), u'Vinta = 陳上進')
     self.assertEqual(pangu.spacing('陳上進=Vinta'), u'陳上進 = Vinta')
     self.assertEqual(pangu.spacing('得到一個A=B的結果'), u'得到一個 A=B 的結果')
コード例 #48
0
 def say(self):
     orderlm = self.lm.order
     out = []
     for pos in self.generate_pos():
         if pos in punct:
             out.append(pos)
         elif pos in self.posvoc:
             bos = (len(out) <= orderlm + 2)
             history = ' '.join(out[-orderlm - 2:]) + ' '
             availvoc = self.posvoc[pos]
             idx, w = weighted_choice_king(
                 10**self.lm.score(history + c, bos, 0) for c in availvoc)
             c = availvoc[idx]
             out.append(c)
         else:
             out.append(pos)
     return pangu.spacing(''.join(joinword(out)))
コード例 #49
0
ファイル: say.py プロジェクト: gumblex/tg-chatdig
 def say(self):
     orderlm = self.lm.order
     out = []
     for pos in self.generate_pos():
         if pos in punct:
             out.append(pos)
         elif pos in self.posvoc:
             bos = (len(out) <= orderlm + 2)
             history = ' '.join(out[-orderlm - 2:]) + ' '
             availvoc = self.posvoc[pos]
             idx, w = weighted_choice_king(
                 10**self.lm.score(history + c, bos, 0) for c in availvoc)
             c = availvoc[idx]
             out.append(c)
         else:
             out.append(pos)
     return pangu.spacing(''.join(joinword(out)))
コード例 #50
0
def main():
    #s = read_from_clipboard()
    load_clipboard_im()
    #print (" | Start to process content in picture...")
    if Baidu_config["active"] is True:
        s = get_Baidu_res(image_path=CLIP_IMNAME)
    elif Tencent_config["active"] is True:
        s = get_Tencent_res(image_path=CLIP_IMNAME)
    else:
        assert (False), "No active service"
    if s != "":
        s = custom_rep(s)
        s = pangu.spacing(s)
        write_to_clipboard(s)
        print(s)
    else:
        print(" | No any characters...")
コード例 #51
0
 def say(self, context=(), continuewords=()):
     context = context or continuewords
     ctxvoc = list(
         frozenset(self.voc).intersection(
             map(
                 self.voc.__getitem__,
                 frozenset(
                     itertools.chain.from_iterable(
                         map(
                             unpackvals,
                             map(
                                 self.ctx.__getitem__,
                                 filter(
                                     None,
                                     map(self.indexword,
                                         frozenset(context)))))))))
     ) or self.voc if context else self.voc
     out = []
     stack = list(continuewords)
     if stack:
         history = ' '.join(stack) + ' '
         idx, w = weighted_choice_king(10**self.lm.score(history + c, 1, 0)
                                       for c in ctxvoc)
     else:
         idx, w = weighted_choice_king(10**self.lm.score(c, 1, 0)
                                       for c in ctxvoc)
     out.append(ctxvoc[idx])
     stack.append(ctxvoc[idx])
     while 1:
         bos = (len(stack) <= self.lm.order + 2)
         history = ' '.join(stack[-self.lm.order - 2:]) + ' '
         idx, w = weighted_choice_king(
             10**self.lm.score(history + ctxvoc[k // 2], bos, k % 2)
             for k in range(len(ctxvoc) * 2))
         c = ctxvoc[idx // 2]
         out.append(c)
         stack.append(c)
         if idx % 2 or self.stopfn(out):
             break
     return pangu.spacing(''.join(joinword(out)))
コード例 #52
0
ファイル: pyorg.py プロジェクト: oldzhong/mysite
 def parse_inline_text(self, m, root):
     content = m.group(0).replace('\n', '')
     root.append(pangu.spacing(content))
コード例 #53
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_exclamation_mark(self):
     self.assertEqual(pangu.spacing('前面!後面'), u'前面! 後面')
     self.assertEqual(pangu.spacing('前面 ! 後面'), u'前面 ! 後面')
     self.assertEqual(pangu.spacing('前面! 後面'), u'前面! 後面')
コード例 #54
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_enclosed_cjk_letters_and_months(self):
     self.assertEqual(pangu.spacing('abc㈱123'), u'abc ㈱ 123')
     self.assertEqual(pangu.spacing('abc ㈱ 123'), u'abc ㈱ 123')
コード例 #55
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_back_quote(self):
     self.assertEqual(pangu.spacing('前面`後面'), u'前面 ` 後面')
     self.assertEqual(pangu.spacing('前面 ` 後面'), u'前面 ` 後面')
     self.assertEqual(pangu.spacing('前面` 後面'), u'前面 ` 後面')
コード例 #56
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_tilde(self):
     self.assertEqual(pangu.spacing('前面~後面'), u'前面~ 後面')
     self.assertEqual(pangu.spacing('前面 ~ 後面'), u'前面 ~ 後面')
     self.assertEqual(pangu.spacing('前面~ 後面'), u'前面~ 後面')
コード例 #57
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_cjk_compatibility_ideographs(self):
     self.assertEqual(pangu.spacing('abc車123'), u'abc 車 123')
     self.assertEqual(pangu.spacing('abc 車 123'), u'abc 車 123')
コード例 #58
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_cjk_unified_ideographs(self):
     self.assertEqual(pangu.spacing('abc丁123'), u'abc 丁 123')
     self.assertEqual(pangu.spacing('abc 丁 123'), u'abc 丁 123')
コード例 #59
0
ファイル: test_pangu.py プロジェクト: Heeby/pangu.py
 def test_cjk_unified_ideographs_extension_a(self):
     self.assertEqual(pangu.spacing('abc㐂123'), u'abc 㐂 123')
     self.assertEqual(pangu.spacing('abc 㐂 123'), u'abc 㐂 123')