def after(self): content = u"""== Описание == Здесь представлены статьи в русском разделе с отсутствующими значениями в семантической секции. Обсудить можно '''[[Обсуждение Викисловаря:Отчёты|здесь]]'''. == Список результатов == """ # items = sorted(self.empty_mining_ru) # for title in items: # content += u"# [[{0}]]\n".format(title) title = u"Индексы/ru/Розовые ссылки" count = len(self.empty_mining_ru) content += ( u"Список результатов слишком велик (%d), поэтому для них был создан отдельный индекс: " u"[[Участник:Vitalik/Индекс/Розовые ссылки/Итого]]." % count ) self.process_report(title, content, count) lines = [line.encode("utf8") for line in self.empty_mining_ru] save_lines(join(settings.FILES_PATH, "reports", "pink_links_ru"), sorted(lines)) create_index( self.empty_mining_ru, u"Индекс/Розовые ссылки", desc=u"Обновление списка розовых ссылок", push=True, debug=False, header=u"Розовые ссылки", ) super(EmptyMiningRu, self).after()
def generate_red_links_index(): ignore_words_content = get_wiki_page_content(u'Участник:Vitalik/Индекс/Красные ссылки/Игнорируемые слова') ignore_words = list() for line in ignore_words_content.split('\n'): m = re.match('^\* \[\[(.*)\]\]$', line) if not m: print u'ERROR in ignore_words: %s' % line ignore_words.append(m.group(1).encode('utf8')) # print '\n'.join(ignore_words) # exit() page_names = [ u'Участник:Vitalik/Индекс/Красные ссылки/Дополнительные источники/Cinematique', u'Участник:Vitalik/Индекс/Красные ссылки/Дополнительные источники/Cinematique/Недостающие глаголы из причастий', ] cin_words = list() for page_name in page_names: cin_words_content = get_wiki_page_content(page_name) for line in cin_words_content.split('\n'): m = re.match('^[*#] \[\[(.*)\]\]$', line) if not m: print u'ERROR in cin_words: %s' % line cin_words.append(m.group(1).encode('utf8')) # print '\n'.join(cin_words) # exit() index_words = load_lines(join(settings.DATA_PATH, 'wikt_words', 'ru+redirects.txt')) dict_words = load_from_dictionaries() red_words = list((set(dict_words) | set(cin_words)) - set(index_words) - set(ignore_words)) print "Red count: ", len(red_words) # exit() # bos_words = load_from_dictionaries(['bos_barhudarov_filtering_words.txt']) # new_words = list(set(bos_words) - set(red_words) - set(index_words)) # for word in sorted(new_words): # print word # exit() # save_lines(join(settings.DATA_PATH, 'words_red_a.txt'), red_words) save_lines(join(settings.FILES_PATH, 'reports', 'red_links_ru'), sorted(red_words)) # create_index(red_words, u'Индекс/Красные ссылки (без подстраниц)', create_index(red_words, u'Индекс/Красные ссылки', desc=u'Обновление списка красных ссылок', push=True, debug=False, header=u'Красные ссылки', )
def after(self): content = u"""== Описание == Здесь представлены статьи в русском разделе со старым шаблоном произношения. Обсудить можно '''[[Обсуждение Викисловаря:Отчёты|здесь]]'''. == Список результатов == """ # items = sorted(self.empty_mining_ru) # for title in items: # content += u"# [[{0}]]\n".format(title) title = u'Индексы/ru/Старый шаблон произношения' count = len(self.transcription_tpl_not_ru) content += u'Список результатов слишком велик (%d), поэтому для них был создан отдельный индекс: ' \ u'[[Участник:Vitalik/Индекс/Старый шаблон произношения/Итого]].' % count self.process_report(title, content, count) lines = [line.encode('utf8') for line in self.transcription_tpl_not_ru] save_lines(join(settings.FILES_PATH, 'reports', 'old_transcription_ru'), sorted(lines)) create_index(self.transcription_tpl_not_ru, u'Индекс/Старый шаблон произношения', desc=u'Обновление списка со старым шаблоном произношения', push=True, debug=False, header=u'Старый шаблон произношения') super(TranscriptionTemplateNotRu, self).after()
from os.path import join from django.conf import settings from dictionaries.utils.file import load_lines, save_lines from reports.red_links.create_index import \ create_index from reports.red_links.load_from_dictionaries import \ load_from_dictionaries index_words = load_lines(join(settings.DATA_PATH, 'wikt_words', 'ru+redirects.txt')) bukchina_words = load_from_dictionaries(['rus_orthography_academic.txt']) print len(bukchina_words) bukchina_red_words = list(set(bukchina_words) - set(index_words)) print len(bukchina_red_words) bukchina_red_words_a = filter(lambda x: x.decode('utf-8').lower()[0] == u'а',# or x[0] == u'А', bukchina_red_words) print len(bukchina_red_words_a) save_lines(join(settings.DATA_PATH, 'words_red_bukchina_a.txt'), bukchina_red_words_a) create_index(bukchina_red_words_a, u'Индекс/Красные ссылки/Букчина', desc=u'Создание списка красных ссылок Букчиной', max_words_on_page=100000, use_other=False, force_letters=u'А', push=True )
def save_indexes(): # old_levels = [ # u'I', # u'II++', # u'II+', # u'II', # u'III++', # u'III+', # u'III', # u'IV++', # u'IV+', # u'IV', # ] # for level in levels_order: # save_wiki_page(u'Участник:Vitalik/Индекс/Качество/%s уровень' % level, # u'#redirect [[Участник:Vitalik/Индекс/Качество/%s уровень/Итого]]' % level, # u'Создание редиректа для удобного переименования') # for level in levels_order: # save_wiki_page(u'Викисловарь:Проект:Русский язык/Качество/%s' % level, # u'#redirect [[Викисловарь:Проект:Русский язык/Качество/%s/Итого]]' % level, # u'Создание редиректа для удобного переименования') # move_wiki_page(u'Викисловарь:Проект:Русский язык/Качество/%s' % level, # u'Викисловарь:Проект:Русский язык/Качество/%s/Итого' % level, # u'Создание редиректа для удобного переименования') # sys.exit() # − print dt(), 'started getting checkers' warning, errors = get_checkers() print dt(), 'finished getting checkers' warning_reports = get_reports_links(warning) errors_reports = get_reports_links(errors) counts = dict() counts1 = dict() counts2 = dict() counts3 = dict() counts4 = dict() highest = load_lines(settings.FILES_PATH + '/data/frequency/ru_new_5000', decode=u'utf-8') top1 = load_lines(settings.FILES_PATH + '/data/frequency/ru_old_1-1000', decode=u'utf-8') top2 = load_lines(settings.FILES_PATH + '/data/frequency/ru_old_1001-10000', decode=u'utf-8') medium = load_lines(settings.FILES_PATH + '/data/frequency/ru_mas_xr_0_2b', decode=u'utf-8') # high2 = set(top1) | (set(top2) - set(highest)) # high1 = set(top1) | set(top2) - set(highest) # print len(high1), len(high2) # if high1 != high2: # raise Exception('!!!') # print len(highest) # print len(set(top1) | set(top2)) high = sorted(list((set(top1) | set(top2)) - set(highest))) # print len(high) # print len(medium) medium = sorted(list(set(medium) - set(highest) - set(high))) # print len(medium) # sys.exit(1) # top1_lines = load_lines(settings.FILES_PATH + 'data/frequency/ru_1-1000') # top2_lines = load_lines(settings.FILES_PATH + 'data/frequency/ru_1001-10000') # top1 = dict() # top2 = dict() # for line in top1_lines: # top1[line] = True # for line in top2_lines: # top2[line] = True total = 0 total1 = 0 total2 = 0 total3 = 0 total4 = 0 path = settings.FILES_PATH + '/reports/quality/' for level in levels_order: words = load_lines(path + 'level_%s.txt' % level.replace(u'−', u'-'), decode=u'utf-8') words1 = sorted(list(set(words) & set(highest))) words2 = sorted(list(set(words) & set(high))) words3 = sorted(list(set(words) & set(medium))) counts[level] = len(words) counts1[level] = len(words1) counts2[level] = len(words2) counts3[level] = len(words3) counts4[level] = counts[level] - counts1[level] - counts2[level] - counts3[level] total += counts[level] total1 += counts1[level] total2 += counts2[level] total3 += counts3[level] total4 += counts4[level] #if level == u'II': # continue if level[0] == u'D': words_details = warning_reports elif level[0] == u'E': words_details = errors_reports else: words_details = None if level[0] in [u'D', u'E']: content1 = '\n'.join([u"* [[%s]]\n%s\n" % (word, words_details.get(word, u"* ''(пусто)''")) for word in words1]) content2 = '\n'.join([u"* [[%s]]\n%s\n" % (word, words_details.get(word, u"* ''(пусто)''")) for word in words2]) else: content1 = '\n'.join([u"# [[%s]]" % word for word in words1]) content2 = '\n'.join([u"# [[%s]]" % word for word in words2]) content1 = u"<noinclude>\n%s\n</noinclude><includeonly>%s</includeonly>" % \ (content1, counts1[level]) content2 = u"<noinclude>\n%s\n</noinclude><includeonly>%s</includeonly>" % \ (content2, counts2[level]) content4 = u'%s' % counts4[level] importance = ( (u'Высшая', content1), (u'Высокая', content2), # (u'Средняя', content3), (u'Низкая', content4), ) for name, content in importance: # print '-' * 100 # print u'Викисловарь:Проект:Русский язык/Качество/Уровень %s/%s важность' % (level, name) # print '-' * 100 # print content # print '-' * 100 # print save_wiki_page( u'Викисловарь:Проект:Русский язык/Качество/Уровень %s/%s важность' % (level, name), content, u'Обновление списка слов по уровню качества и важности') # continue create_index( words3, u'Качество/Уровень %s/%s важность' % (level, u'Средняя'), desc=u'Обновление списка слов по уровню качества и важности', push=True, debug=False, # push=False, debug=True, header=u'Уровень качества %s' % level, force_wiki_prefix=u'Викисловарь:Проект:Русский язык', # wiki_save_only_total=True, need_div=False, words_details=words_details, ) create_index( words, u'Качество/Уровень %s' % level, desc=u'Обновление списка слов по уровню качества', push=True, debug=False, # push=False, debug=True, header=u'Уровень качества %s' % level, force_wiki_prefix=u'Викисловарь:Проект:Русский язык', # wiki_save_only_total=True, need_div=False, words_details=words_details, ) content = u""" {| class="wikitable" style="text-align: center" ! colspan="7" | Статьи проекта «Русский язык» |- ! rowspan="2" | Уровень <br />качества ! colspan="6" | Важность |- ! Высшая ! Высокая ! Средняя ! Низкая ! Всего |- """ for level in levels_order: content += u"| '''%s''' \n" \ u"| %s <!-- Уровень %s, высшая важность -->\n" \ u"| %s <!-- Уровень %s, высокая важность -->\n" \ u"| %s <!-- Уровень %s, средняя важность -->\n" \ u"| %s <!-- Уровень %s, низкая важность -->\n" \ u"| %s <!-- Уровень %s, всего -->\n" \ u"|- \n" % \ (level, counts1[level], level, counts2[level], level, counts3[level], level, counts4[level], level, counts[level], level) content += u"| '''Всего''' \n" \ u"| %s <!-- Всего, высшая важность -->\n" \ u"| %s <!-- Всего, высокая важность -->\n" \ u"| %s <!-- Всего, средняя важность -->\n" \ u"| %s <!-- Всего, низкая важность-->\n" \ u"| %s <!-- Всего -->\n" \ u"|-\n" % \ (total1, total2, total3, total4, total) content += u"|}" # print content save_wiki_page(u'Викисловарь:Проект:Русский язык/Качество/Для истории', content, u'Статистика по качеству статей (для истории)')