Example #1
0
    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()
Example #2
0
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'Красные ссылки',
    )
Example #3
0
    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()
Example #4
0
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
)
Example #5
0
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'Статистика по качеству статей (для истории)')