def _process_phrase(phrase, process_func, *args, **kwargs): """ обработать фразу """ words = tokenizers.extract_tokens(phrase) result="" try: for word in words: if tokenizers.GROUPING_SPACE_REGEX.match(word): result += word continue processed = process_func(word.upper(), *args, **kwargs) processed = _restore_register(processed, word) if processed else word result += processed except Exception: return phrase return result
def _process_phrase(phrase, process_func, *args, **kwargs): """ обработать фразу """ words = tokenizers.extract_tokens(phrase) result = "" try: for word in words: if tokenizers.GROUPING_SPACE_REGEX.match(word): result += word continue processed = process_func(word.upper(), *args, **kwargs) processed = _restore_register(processed, word) if processed else word result += processed except Exception: return phrase return result
def morth(text): uni = unicode(text, "UTF-8") # Перевод строку в Unicode output = '' # Строка вывода # Разбиваем исходную строку на подстроки list = tokenizers.extract_tokens(uni) for word in list: info = morph.get_graminfo(word.upper()) # Получаем информацию о слове output += word # Добавляем в выходную строку часть речи, если она определена if info.__len__() != 0: output += '(%s)'%(info[0]['class']) return output, uni
# -*- coding: cp1251 -*- from pymorphy import get_morph # портируем необходимые модули from pymorphy.contrib import tokenizers morph = get_morph('C:/Python27/ru.sqlite-json/') # создаем объект класса pymorphy.Morph text = (raw_input("Входные данные: ")).decode('cp1251') d = {} # словарь для хранения списка слов с одной нормальной формой a = set() # множество, не допускающее повторений нормальных форм part_d = {} # словарь для грамматической информации слова part_a = set() # множество, не допускающее повторений слов for word in tokenizers.extract_tokens(text): # выделяем токены, узнаем часть речи if word.isalpha() == True: # отсеиваем пунктуацию info = morph.get_graminfo(word.upper()) # находим грамм. информацию слова part = info[0]['class'] # часть речи слова gram_info = info[0]['info'] # грамм. информация слова nf = info[0]['norm'] # нормальная форма слова print str('{0}({1})').format(word.encode('cp1251'),part.encode('cp1251')), # учитываем только сущ, глаголы и прил if part == u'С' or part == u'Г' or part == u'П' or part == u'ИНФИНИТИВ': # для имени не подбираем синоним if u'имя' in info[0]['info']:name = 1 else: len_ = len(a) a.add(nf) if len_ == len(a): # есть ли уже такая нормальная форма? l = d[nf] # если есть, то добавляем слово в конец списка l.append(word) d[nf] = l
initialDict() morph = get_morph('/home/bliq/PycharmProjects/Dictionary') # Подключаем словари morth2 = pymorphy2.MorphAnalyzer() searchWord = "" synonym = "" result = "" text = raw_input("Введите текст:\n") uni = unicode(text, "UTF-8") # Перевод строку в Unicode # Разбиваем исходную строку на подстроки listTokens = tokenizers.extract_tokens(uni) listWords = tokenizers.extract_words(uni) dic = {} for word in listWords: info = morph.normalize(word.upper()) info = list(info)[0] dic[info] = dic[info] + 1 if dic.has_key(info) else 1 dic = sorted(dic.items(), key = lambda elem: elem[1], reverse = True) for word in dic: info = morph.get_graminfo(word[0])
# -*- coding: cp1251 -*- from pymorphy import get_morph from pymorphy.contrib import tokenizers morph = get_morph('C:/Python27/ru.sqlite-json/') text = (raw_input()).decode('cp1251') d = {} a = set() part_d = {} part_a = set() for word in tokenizers.extract_tokens(text): if word.isalpha() == True: info = morph.get_graminfo(word.upper()) part = info[0]['class'] gram_info = info[0]['info'] nf = info[0]['norm'] print str('{0}({1})').format(word.encode('cp1251'),part.encode('cp1251')), if part == u'Ñ' or part == u'Ã' or part == u'Ï' or part == u'ÈÍÔÈÍÈÒÈÂ': if u'èìÿ' in info[0]['info']:name = 1 else: len_ = len(a) a.add(nf) if len_ == len(a): l = d[nf] l.append(word) d[nf] = l else:
def assertSplitted(self, text, words): self.assertEqual(extract_tokens(text), words)
# -*- coding: cp1251 -*- from pymorphy import get_morph from pymorphy.contrib import tokenizers morph = get_morph('C:/Python27/ru.sqlite-json/') text = (raw_input()).decode('cp1251') d = {} a = set() part_d = {} part_a = set() for word in tokenizers.extract_tokens(text): if word.isalpha() == True: info = morph.get_graminfo(word.upper()) part = info[0]['class'] gram_info = info[0]['info'] nf = info[0]['norm'] print str('{0}({1})').format(word.encode('cp1251'), part.encode('cp1251')), if part == u'Ñ' or part == u'Ã' or part == u'Ï' or part == u'ÈÍÔÈÍÈÒÈÂ': if u'èìÿ' in info[0]['info']: name = 1 else: len_ = len(a) a.add(nf) if len_ == len(a): l = d[nf] l.append(word) d[nf] = l
def assertSplitted(self, text, words): self.assertEqual(list(extract_tokens(text)), words)
def create_words(sequence): if isinstance(sequence, unicode) or isinstance(sequence, str): sequence.decode('utf-8', errors='ignore') words = tokenizers.extract_tokens(sequence) words = text.process_words(words) return words