예제 #1
0
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
예제 #2
0
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
예제 #3
0
파일: morth.py 프로젝트: dmg61/Morth
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
예제 #4
0
# -*- 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
예제 #5
0
파일: synonym.py 프로젝트: dmg61/Synonym
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])
예제 #6
0
파일: cad_syn.py 프로젝트: CorvoOrc/CAD
# -*- 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:
예제 #7
0
 def assertSplitted(self, text, words):
     self.assertEqual(extract_tokens(text), words)
예제 #8
0
파일: cad_syn.py 프로젝트: CorvoOrc/CAD
# -*- 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
예제 #9
0
 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