Пример #1
0
def compare_phrase(P1, P2):
    word_tokenizer = WPT()

    words1 = word_tokenizer.tokenize(P1)
    words2 = word_tokenizer.tokenize(P2)

    P = 1.0
    for i in range(max(len(words1), len(words2))):
        p = {-1: 1, 0: 1, 1: 1}
        for j in p.keys():
            try:
                p[j] *= compare(words1[i], words2[i + j])
            except IndexError:
                p[j] = 0
        P *= max(p.values())

    return P
Пример #2
0
import operator

import nltk

# managing and removing stopwords
from nltk.corpus import stopwords

# handling sentiment related tasks
from nltk.classify import NaiveBayesClassifier
from nltk.sentiment import SentimentAnalyzer
from nltk.sentiment.util import *
sentiment_analyzer = SentimentAnalyzer()

# word punctuation tokenizer, it will extract all the punctuations as separate
from nltk.tokenize import WordPunctTokenizer as WPT
wpt = WPT()

# sentence tokenizer using pretrained nltk model
sentence_tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')

contractions = {
    "ain't": "are not",
    "aren't": "are not",
    "can't": "cannot",
    "can't've": "cannot have",
    "'cause": "because",
    "could've": "could have",
    "couldn't": "could not",
    "couldn't've": "could not have",
    "didn't": "did not",
    "doesn't": "does not",
Пример #3
0
from pymorphy2 import MorphAnalyzer as MA
from nltk.tokenize import PunktSentenceTokenizer as PST
from nltk.tokenize import WordPunctTokenizer as WPT
import string
from nltk.corpus import stopwords
import gensim
import sys

ma = MA()
st = PST()
wt = WPT()
text1 = """Каждый человек имеет право на образование.
Образование должно быть бесплатным, по меньшей мере,
в том, что касается начального и общего образования.
Начальное образование должно быть обязательным.
Техническое и профессиональное образование должно быть общедоступным,
и высшее образование должно быть одинаково доступным для всех
на основе способностей каждого."""
text2 = """Каждый человек имеет право на образование.
Образование должно быть, по крайней мере, на ранних этапах,
и по крайней мере базовое, начальное образование должно быть обязательным,
техническое и профессиональное образование должно быть обобщено,
а доступ к высшему образованию должен быть обеспечен наравне со всеми и
на основе компетенции."""

sys.stdout = open('Result1.txt', 'w')

tokens1 = wt.tokenize(text1)        # Разбиваем на слова
tokens2 = wt.tokenize(text2)
functors_pos = {'INTJ', 'PRCL', 'CONJ', 'PREP'}                     # Удаляем пунктуацию
tokens1 = [i for i in tokens1 if ( i not in string.punctuation )]
Пример #4
0
from nltk.tokenize import WordPunctTokenizer as WPT

MIN_P = 0.55
MIN_W = 0.62
PUNKT = ['.', ',', ':', '!', '?']
DIGITS = [str(i) for i in range(10)]
TO_REMOVE = PUNKT + DIGITS
wpt = WPT()

def ngramm_compare_phrase(P1, P2):
	words1 = [word for word in wpt.tokenize(P1) if word not in TO_REMOVE]
	words2 = [word for word in wpt.tokenize(P2) if word not in TO_REMOVE]
	P = 1.0
	for i in range(max(len(words1),len(words2))):
		p = {-1:1, 0:1, 1:1}
		for j in p.keys():
			try:
				p[j] *= ngramm_compare(words1[i], words2[i+j])
			except IndexError:
				p[j] = 0
		P *= max(p.values())

	return P

def ngramm_compare(S1,S2):
	S1 = S1.replace(" ", "")
	S2 = S2.replace(" ", "")
	ngrams = [S1[i:i+3] for i in range(len(S1))]
	count = 0
	for ngram in ngrams:
		count += S2.count(ngram)
Пример #5
0
from requests import get  #импортируем метод get для запросов
from pymystem3 import Mystem  #морфологический анализатор для русского языка
from nltk.tokenize import PunktSentenceTokenizer as PST  #Класс для выделения предложений
from nltk.tokenize import WordPunctTokenizer as WPT  #класс для разделения слов в предложении
from pymystem3 import Mystem  #морфологический анализатор для русского языка
from threading import Thread  # ипортируем библиотеку для многопоточного программирования

st = PST()  #обозначение переменных как класс
wt = WPT()  #обозначение переменных как класс

Names1 = {}  #создаем словарь для имен из первого текста
Names2 = {}  #создаем словарь для имен из второго текста
my_file1 = open(
    "some1.txt", "r", encoding='utf-8'
)  #открыть файл с именем some1.txt с кодировкой utf-8 на чтение
my_file2 = open(
    "some2.txt", "r", encoding='utf-8'
)  #открыть файл с именем some2.txt с кодировкой utf-8 на чтение
text1 = my_file1.read(
)  #в переменную text1 запоминаем все данные из файла some1.txt
text2 = my_file2.read(
)  #в переменную text2 запоминаем все данные из файла some2.txt


def paral1():
    for sentence in st.sentences_from_text(
            text1):  #выделяем из текста1 предложение и бежим по нему
        for word in wt.tokenize(
                sentence):  #бежим по словам в выделенном тексте
            m = Mystem()
            analize = m.analyze(word)  #Морфологический анализ слова