Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
и считаем косинус угла между ними (через векторное произведение)
SPACE, DOT, DOT_SPACE, OTHER = range(4)
DOT_SYMBOLS = {u".", u"?", u"!", u"\u2026"}
_STRIP_SYMBOLS = "".join(DOT_SYMBOLS) + " "
def split_to_sentences(text, bad_words=set()):
"""Finite-state machine that split text to sentences.
See tests.sentences for tests and examples"""
state = None
sentence = ""
last_word = ""
for char in text:
if state == DOT_SPACE and char.isupper():
# TODO: check that last word is not "г." "ул." etc.
sentence += last_word
# print last_word, "LAST WORD"
if last_word.strip(_STRIP_SYMBOLS) not in bad_words:
yield sentence
sentence = ""
last_word = char
state = OTHER
elif state in (SPACE, DOT_SPACE) and char == " ":
pass # remove duplicate spaces
elif state in (SPACE, DOT_SPACE) and char not in DOT_SYMBOLS:
# any char, except space, after space -> new word
sentence += last_word
last_word = char
state = OTHER
elif state == DOT and char == " ":
last_word += char
state = DOT_SPACE
elif char in DOT_SYMBOLS:
last_word += char
state = DOT
elif char == " ":
last_word += char
state = SPACE
else:
last_word += char
state = OTHER
# print char, state
if last_word:
sentence += last_word
if sentence:
yield sentence
найти все кириллические и греческие буквы, по написанию похожие на соответствующие английские. Хитроумные авторы специально вставляют их в текст, чтобы обмануть проверку на плагиат.
Кстати сказать, самый большой и известный сайт для поиска плагиата называется Turnitin. Это практический монополист в этой области.
из чего я делаю вывод, что от сложившейся системы сами авторы мало что получают, а доходы идут кому-то другому
Система поиска плагиата