def parseReadings(self): items_grouped = {} for kanji in self.items: readings = {} try: lookup = self.kjd[kanji.character] for kun in lookup.kun_readings: kun = kun.replace('.', '').replace('-', '') for word in kanji.word: if kun in kata2hira(MecabTool.parseToReadingsKana(word.word)[0]): if readings.has_key(kun): readings[kun].append(word.word) else: readings[kun] = [word.word] for on in lookup.on_readings: on = kata2hira(on.replace('.', '').replace('-', '')) for word in kanji.word: if on in kata2hira(MecabTool.parseToReadingsKana(word.word)[0]): if readings.has_key(on): readings[on].append(word.word) else: readings[on] = [word.word] except Exception, e: log.error(e) # simple solution - difficult implementation # items_grouped[kanji.character] = readings # slightly more complicated solution - easier implementation for reading in readings: i = 0 if items_grouped.has_key(kanji.character): items_grouped[kanji.character + '_' + str(i)] = (reading, readings[reading]); i += 1 else: items_grouped[kanji.character] = (reading, readings[reading])
def getCorrectAnswer(self): words = MecabTool.parseToWordsFull(self.currentExample.sentence) answer = self.find(lambda word: self.currentItem.character in word['word'] , words) try: return kata2hira(answer['pronunciation']) except Exception: return u' '
def getWordPronunciationFromExample(self, item): words = MecabTool.parseToWordsFull(self.currentExample.sentence) answer = self.find(lambda word: item in word['word'] , words) try: return kata2hira(answer['pronunciation']) except Exception: return u' '
def getCurrentSentenceReading(self): return kata2hira(''.join(MecabTool.parseToReadingsKana(self.currentExample.sentence)))
def parseCurrentExample(self): return MecabTool.parseToWordsOnly(self.currentExample.sentence)
def getWordPronounciation(self, item): try: return kata2hira(MecabTool.parseToWordsFull(item)[0]['pronunciation']) except: return item
def getWordNonInflectedForm(self, item): try: return MecabTool.parseToWordsFull(item)[0]['nform'] except: return item
def getParsedExampleInFull(self): return MecabTool.parseToWordsFull(self.currentExample.sentence)
def getWordFromExample(self): words = MecabTool.parseToWordsFull(self.currentExample.sentence) answer = self.find(lambda word: self.currentItem.character in word['word'] , words) return answer['word']
def getExamplesKana(query): return JishoClient.getExamples(kata2hira(''.join(MecabTool.parseToReadingsKana(query)))) #it works but slightly incorrect (mecab shenanigans) #test = JishoClient.getExamplesKana(u'軈て') #print '\n'.join(test)