def test_wakati_furiagana(): TESTS = [(u"変換前の漢字の脇に", u"変換前[へんかんまえ] の 漢字[かんじ] の 脇[わき] に")] kakasi = pykakasi.wakati() kakasi.setMode("f", True) converter = kakasi.getConverter() for case, result in TESTS: assert converter.do(case) == result
def test_wakati(self): TESTS = [(u"", u""), (u"交じり文", u"交じり 文"), (u"ひらがな交じり文", u"ひらがな 交じり 文"), (u"漢字とひらがな交じり文", u"漢字 とひらがな 交じり 文")] wakati = pykakasi.wakati() converter = wakati.getConverter() for case, result in TESTS: self.assertEqual(converter.do(case), result)
def test_wakati(): TESTS = [(u"", u""), (u"交じり文", u"交じり 文"), (u"ひらがな交じり文", u"ひらがな 交じり 文"), (u"漢字とひらがな交じり文", u"漢字 とひらがな 交じり 文")] wakati = pykakasi.wakati() converter = wakati.getConverter() for case, result in TESTS: assert converter.do(case) == result
def jpTokenizer(self, lyrics): wakati = pykakasi.wakati() kanjiTokenizer = wakati.getConverter() kajiTokenized = kanjiTokenizer.do(lyrics) return kajiTokenized pass
def test_wakati_constitution(self): original_text = u"日本国民は、正当に選挙された国会における代表者を通じて行動し、われらとわれらの子孫のために、諸国民との協和による成果と、わが国全土にわたつて自由のもたらす恵沢を確保し、政府の行為によつて再び戦争の惨禍が起ることのないやうにすることを決意し、ここに主権が国民に存することを宣言し、この憲法を確定する。そもそも国政は、国民の厳粛な信託によるものであつて、その権威は国民に由来し、その権力は国民の代表者がこれを行使し、その福利は国民がこれを享受する。これは人類普遍の原理であり、この憲法は、かかる原理に基くものである。われらは、これに反する一切の憲法、法令及び詔勅を排除する。" result = u"日本国民 は、 正当 に 選挙 された 国会 における 代表者 を 通じ て 行動 し、われらとわれらの 子孫 のために、 諸国民 との 協和 による 成果 と、わが 国 全土 にわたつて 自由 のもたらす 恵沢 を 確保 し、 政府 の 行為 によつて 再び 戦争 の 惨禍 が 起る ことのないやうにすることを 決意 し、ここに 主権 が 国民 に 存す ることを 宣言 し、この 憲法 を 確定す る。そもそも 国政 は、 国民 の 厳粛 な 信託 によるものであつて、その 権威 は 国民 に 由来 し、その 権力 は 国民 の 代表者 がこれを 行使 し、その 福利 は 国民 がこれを 享受 する。これは 人類普遍 の 原理 であり、この 憲法 は、かかる 原理 に 基く ものである。われらは、これに 反す る 一切 の 憲法 、 法令 及び 詔勅 を 排除 する。" wakati = pykakasi.wakati() converter = wakati.getConverter() self.maxDiff = None self.assertEqual(converter.do(original_text), result)
def test_wakati_furiagana(self): TESTS = [ (u"変換前の漢字の脇に", u"変換前[へんかんまえ] の 漢字[かんじ] の 脇[わき] に") ] kakasi = pykakasi.wakati() kakasi.setMode("f", True) converter = kakasi.getConverter() for case, result in TESTS: self.assertEqual(converter.do(case), result)
def test_wakati(self): TESTS = [ (u"交じり文", u"交じり 文"), (u"ひらがな交じり文", u"ひらがな 交じり 文"), (u"漢字とひらがな交じり文", u"漢字 とひらがな 交じり 文") ] wakati = pykakasi.wakati() converter = wakati.getConverter() for case, result in TESTS: self.assertEqual(converter.do(case), result)
def jp_text_to_roman(str): ''' Convert Japanese text to Roman/Alphabet text >>> jp_text_to_roman(u'今日のお天気は晴れです') 'kyou noo tenki ha hare desu' >>> jp_text_to_roman(u'矢野浩二') 'yano kouji' ''' w = pykakasi.wakati() k = pykakasi.kakasi() k.setMode('H', 'a') # Hiragana to Alphabet/Roman Letter k.setMode('K', 'a') # Katakana to Alphabet/Roman Letter k.setMode('J', 'a') # Kanji to Alphabet/Roman Letter k.setMode('C', False) # Capitalize result = str for parser in [w, k]: c = parser.getConverter() result = c.do(result) return result
@pytest.mark.parametrize("case, expected", [("", ""), ("カンタン", "かんたん"), ("ニャ", "にゃ")]) def test_kakasi_K2H(case, expected): kakasi = pykakasi.kakasi() kakasi.setMode("K", "H") converter = kakasi.getConverter() assert converter.do(case) == expected @pytest.mark.parametrize("case, expected", [("", ""), ("交じり文", "交じり 文"), ("ひらがな交じり文", "ひらがな 交じり 文"), ("漢字とひらがな交じり文", "漢字 とひらがな 交じり 文")]) def test_wakati(case, expected): wakati = pykakasi.wakati() converter = wakati.getConverter() assert converter.do(case) == expected def test_katakana_furiagana(): TESTS = [(u"変換前の漢字の脇に", u"変換前[ヘンカンマエ]の漢字[カンジ]の脇[ワキ]に")] kakasi = pykakasi.kakasi() kakasi.setMode("H", None) kakasi.setMode("K", None) kakasi.setMode("J", "KF") kakasi.setMode("f", True) kakasi.setMode("s", False) kakasi.setMode("E", None) kakasi.setMode("a", None) converter = kakasi.getConverter()
def getRoma(raw): minlen = 5 kakasi2 = kakasi() kakasi2.setMode("H", "a") # default: Hiragana no conversion kakasi2.setMode("K", "a") # default: Katakana no conversion kakasi2.setMode("J", "a") # default: Japanese no conversion kakasi2.setMode("r", "Hepburn") # default: use Hepburn Roman table #kakasi.setMode("C", True) # add space default: no Separator kakasi2.setMode("s", True) # add space default: no Separator kakasi2.setMode("c", False) # capitalize default: no Capitalize conv = kakasi2.getConverter() text = raw #ftext = conv.do(text) #ftext = puncfix(ftext) #convk = kakasi.getConverter() segmenter = tinysegmenter.TinySegmenter() wakati2 = wakati() convw = wakati2.getConverter() resultw = convw.do(text) #print(resultw) arr = [] resultw = resultw.split(' ') for i in range(len(resultw)): part = resultw[i] if len(part) > minlen: part = ' '.join(segmenter.tokenize(part)) arr.append(conv.do(part)) result = ' '.join(arr) result = multiple_replace( { ' ': ' ', 'o-': 'ō', 'a-': 'ā', 'ou': 'ō', ' ha ': 'wa', 'tsu te': 'tte', 'tsu to': 'tto', 'e-': 'ē', 'i-': 'ī', ' - ': '~' }, result) ftext = result ''' doesnt work romaji_link = 'http://nihongo.j-talk.com/' r = requests.get(romaji_link) soup = BeautifulSoup(r.content, 'html.parser') d = soup.select('#formwrap > form > input[type="hidden"]') timestamp = d[0]['value'] uniqid = d[1]['value'] kanji = raw headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" } data = { 'timestamp' : timestamp, 'uniqid' : uniqid, 'kanji' : kanji, 'Submit' : 'Translate Now', 'kana_output' : 'romaji', 'converter' : 'spacedrollover', 'kanji_parts' : 'unchanged' } return requests.post(romaji_link, data = data, headers = headers) ''' return ftext
from pykakasi import kakasi, wakati text = u"かな漢字交じり文" kakasi = kakasi() kakasi.setMode("H", "a") # Hiragana to ascii, default: no conversion kakasi.setMode("K", "a") # Katakana to ascii, default: no conversion kakasi.setMode("J", "a") # Japanese to ascii, default: no conversion kakasi.setMode("r", "Hepburn") # default: use Hepburn Roman table kakasi.setMode("s", True) # add space, default: no separator kakasi.setMode("C", True) # capitalize, default: no capitalize conv = kakasi.getConverter() result = conv.do(text) print(result) wakati = wakati() conv = wakati.getConverter() result = conv.do(text) print(result)
import re import sys from ssl import SSLWantReadError import requests import keyboard from pykakasi import kakasi, wakati from bs4 import BeautifulSoup REQUEST_SESSION = requests.session() KAKASI = kakasi() KAKASI.setMode("J", "H") KAKASI_CONVERTER = KAKASI.getConverter() WAKATI = wakati() WAKATI_CONVERTER = WAKATI.getConverter() def get_relevant_data(result_page): """Grabs the relevant information from the term's dictionary page and passes it to the hotkey function to be pasted into Anki.""" kanji = result_page.find("div", class_="jp").text.replace("·", "") kanji = re.sub("(\(.{1,3}\))", "", kanji) try: kana = result_page.find("div", class_="furigana").text.replace( "[", "").replace("]", "").replace("·", "") kana = re.sub("(\(.{1,3}\))", "", kana) except AttributeError: kana = kanji romaji = result_page.find("div", class_="romaji hide").text term_definition = result_page.find( "div", class_="en").find("ol").text.rstrip().lstrip()