Módulo Discussão:Avaliação/Arquivo/1

O conteúdo da página não é suportado noutras línguas.
Origem: Wikipédia, a enciclopédia livre.

Língua e estilo[editar código-fonte]

Está ficando muito bom Helder. Olhando o módulo me surgiram duas dúvidas, uma é, não seria melhor mantermos os módulos em português como as predefinições? A outra é meu estilo de programação, como já deve ter percebido por alguns de meus scripts, ele é diferente do seu e da maioria dos programadores, acha que esse modo de programar que estou acostumado atrapalha muito a legibilidade do script por ouros programadores? Tenho dificuldade de programar de outra forma, e tenho receio de tentar ajudar no módulo e acabar deixando ele muito bagunçado... Danilo.mac(discussão) 17h11min de 1 de novembro de 2013 (UTC)

Então Danilo.mac, até percebi isso do "bagunçado" ao ver o seu marcas.py, mas dá pra entender, então não se acanhe de fazer mudanças . Acho que, pelo menos em um primeiro momento, seria bom conseguir uma versão em Lua equivalente a que tinha em Python, mesmo que não fique muito organizado. Eu tentei organizar quando dei início àquela versão em JS mas ficou pela metade.
Sobre o idioma, o ideal seria separar a "interface" (com mensagens e nomes de parâmetros traduzidos), que é o que que será utilizada pelos editores e o "corpo" do código (em inglês, por facilitar a reutilização em outras wikis). Uma tal separação permitiria que a interface pudesse ser traduzida facilmente entre idiomas, sem ter que ficar adaptando o restante do código (tanto antes quanto depois de ser implementado um repositório central para os módulos). Mas ainda não está claro como exatamente isso pode ser feito (lembro de ter visto uma discussão relacionada em mailarchive:wikitech-l/2013-May/069658.html e uns testes relacionados a i18n e Wikidata feitos pelo Rical). No caso deste módulo em particular, também gostaria que fosse possível ter um objeto em que certa wiki pudesse definir seus parâmetros/critérios de avaliação, e utilizá-los na função que faz a avaliação (sem deixar os valores hardcoded no meio do código principal). Mas isso pode ficar para um segundo momento. Helder 17h48min de 1 de novembro de 2013 (UTC)
Ok, estou traduzindo a função de avaliação do marcas.py para Lua, em breve coloco aqui no módulo. Quanto à língua, entendo que devemos facilitar para as outras wikis, mas acho que deveríamos deixar em inglês apenas os comentários e talvez as variáveis, acho que o nome do módulo e das funções deveriam sempre estar em português aqui na ptwiki, se eles quiserem usar o código, acho que traduzir o nome do módulo e das funções não será um grande problema para eles, ter tudo em inglês me dá uma sensação de algo feito para a enwiki, acho estranho. Vou tentar já separar os parâmetros de avaliação do restante do código. Danilo.mac(discussão) 16h48min de 11 de novembro de 2013 (UTC)
Danilo.mac, sabe me dizer se a versão atual está muito distante de poder ser utilizada no lugar do robô? Helder.wiki (discussão) 09h57min de 2 de fevereiro de 2014 (UTC)
Acho que falta a parte para detectar se existem referências em todas as seções e depois teria que passar para a {{marca de projeto}}. Lua é uma linguagem meio difícil de programar, por isso fui deixando isso meio de lado, mas este módulo é mesmo importante para Wikipédia, vou tentar retomar esta semana. Danilo.mac(discussão) 18h50min de 2 de fevereiro de 2014 (UTC)
[off-topic] Danilo.mac, surgiu uma discussão na Wikitech que talvez queira ver: mailarchive:wikitech-l/2013-December/073591.html. Helder.wiki (discussão) 12h01min de 12 de dezembro de 2013 (UTC)
Interessante a discussão, quem não é programador profissional tem mesmo dificuldade para programar no mesmo estilo deles, o Usuário:Danilo.mac/fastbuttons.js é um bom exemplo disso, o código não foi desenvolvido no estilo padrão dos programadores profissionais, mas foi útil à comunidade. Infelizmente alguns developers ainda não são abertos a esse tipo de colaboração "fora do padrão". Danilo.mac(discussão) 15h19min de 12 de dezembro de 2013 (UTC)

Por falar em organização de código, acho que uma indentação com um TAB de tamanho 8 ficaria melhor. Fora que no código está misturado indentações com espaço e com TAB. Tem que ser um, ou outro (TAB de preferência). Silent (discussão) 19h44min de 4 de fevereiro de 2014 (UTC)

Talvez a mistura de tabs e espaços tenha sido porque o código foi começado antes de gerrit:80843? Helder.wiki (discussão) 20h08min de 4 de fevereiro de 2014 (UTC)
Bem, não gosto muito de dar palpite sobre esses assuntos, pois o estilo que prefiro é diferente do estilo que a maioria dos programadores prefere, mas acho que essas diferenças realmente atrapalham um pouco a leitura do código. Eu prefiro indentação de 2 espaços (o código python do Google e o código do Ruby on Rails por exemplo usam indentação de 2 espaços), mas muitas vezes uso 4 porque sei que muitos não gostam de 2, 8 espaços eu acho exagerado. Também acho que atrapalha a leitura colocar muitas linhas em branco, por exemplo linhas em branco depois de cada for ou if. Outra coisa que acho que atrapalha é o HtmlBuilder, acho muito mais fácil escrever o HTML diretamente. Mas sei que a forma como eu programo também incomoda outros programadores, infelizmente não existe um estilo que todos se adaptem, enfim, é uma questão complicada. Danilo.mac(discussão) 00h48min de 18 de fevereiro de 2014 (UTC)
Mas é isso mesmo, é questão de gosto. Eu mesmo já vejo as linhas branco e o TAB de 8 espaços como uma forma de organizar melhor o código e facilitar a leitura, pois não mistura muito o código. Silent (discussão) 01h08min de 18 de fevereiro de 2014 (UTC)
Bom, pelo menos a parte da tabulação é simples de resolver, pois a extensão CodeEditor pode ser configurada conforme o gosto de cada um. No seu caso, se tomar este pequeno código escrito pelo Rillke e trocar "setUseSoftTabs(false)" por "setTabSize(2)" a indentação ficará do jeito que você prefere (testei no console do Chrome). Helder.wiki (discussão) 12h30min de 18 de fevereiro de 2014 (UTC)

Testes e bugs[editar código-fonte]

Alterei a {{marca de projeto/Testes}} para usar o módulo para gerar a marca e fiz alguns testes. Um caso que ainda não sei como corrigir é o que acontece em Discussão:Projeto A119, ao colocar o "/Testes" dá uns erros causados pelo parâmetro "3rev", escrito errado. Talvez seja bom colocar algo para categorizar páginas com parâmetros desconhecidos (que não sejam 'rev' ou 'bot') para um robô passar corrigindo. Danilo.mac(discussão) 03h32min de 22 de fevereiro de 2014 (UTC)

Parece que era só passar uma string vazia em vez de nil para a {{marca de projeto/projeto}}. Mas pode ser útil categorizar usos de parâmetros estranhos também (embora isso possa ser feito depois). Helder.wiki (discussão) 10h52min de 22 de fevereiro de 2014 (UTC)

Fiz mais alguns testes e correções. Melhorei a busca por parágrafos, antes estava pegando muito poucos parágrafos (Cordados por exemplo estava dando Q1 por ter 3 parágrafos), agora melhorou, mas ainda está deixando de pegar alguns parágrafos e pegando trechos que não são parágrafos, mas espero que não dê mais erros graves de avaliação por causa disso. Ando com pouco tempo ultimamente, assim que der faço mais alguns testes. Danilo.mac(discussão) 02h51min de 10 de março de 2014 (UTC)

Encontrei outro bug relacionado aos parágrafos no artigo Açucar, só que aqui parece ser algo relacionado ao Lua do MediaWiki. No meu computador tenho uma versão do módulo que uso para testes que não possui as bibliotecas do MediaWiki, e ao testar esse artigo deu qualidade 3, passou na verificação de parágrafos contando 20 parágrafos, acho que deve ser algo relacionado com as diferenças entre Lua original e o Lua do MediaWiki, mas não consegui descobrir o que é. Danilo.mac(discussão) 00h57min de 22 de março de 2014 (UTC)
Poderia gerar duas listas?
  1. Quais são os parágrafos segundo o seu código local?
  2. Quais são os parágrafos segundo o código que está na Wikipédia?
Isso pode ajudar a descobrir em que ponto está a diferença...
Já tentou instalar o MW com vagrant? Talvez seja mais fácil, por poder fazer testes com Lua em uma instalação local do MediaWiki. Helder.wiki (discussão) 13h11min de 22 de março de 2014 (UTC)
Minha suspeita é que pode ser por causa da diferença entre bytes e caracteres. Veja mw:Extension:Scribunto/Lua reference manual#Ustring library. Helder.wiki (discussão) 13h15min de 22 de março de 2014 (UTC)
Danilo.mac, no artigo Açúcar, a linha
text, n = text:gsub(refNoTemplates[i], '')
do módulo acaba removendo várias seções (de "== Riscos à Saúde ==" até "{{referências}}\n\n== "), então quando chega a verificação dos parágrafos há, de fato, só 5 parágrafos no texto.
Aparentemente, esta alteração na regex resolveu o problema. Helder.wiki (discussão) 19h13min de 13 de junho de 2014 (UTC)

Danilo.mac, qual o status atual da implementação da avaliação automática por meio deste módulo? Já faz um tempo desde que olhei o que estava sendo feito, então não lembro bem o que ainda precisa ser testado ou corrigido antes de completarmos a migração... Helder.wiki (discussão) 12h45min de 28 de abril de 2014 (UTC)

Aquela verificação do número de parágrafos estava bugada e eu não sabia como consertar, então removi essa verificação do módulo, com isso apareceu erro em outra verificação, agora na contagem de ligações internas, e tem o mesmo problema de acontecer no MediaWiki e não em um interpretador lua convencional. O módulo parece estar mais bugado do que eu imaginava, e Lua não é uma linguagem divertida de se programar, então acabei desanimando de insistir neste módulo, resolver esses bugs (e possivelmente outros que esses estão encobrindo) vai ser complicado. Danilo.mac(discussão) 15h40min de 28 de abril de 2014 (UTC)

Danilo.mac: por algum motivo, o loop for t in mw.ustring.gmatch(text, '{{ *([^|}\n]+)[ \n]*[|}]') do só está detectando as predefinições "Formatar referências" e "em tradução" no artigo Açúcar (isso pode ser confirmado colocando uma linha "mw.log( 'PREDEFINIÇÃO: ' .. t )" logo no início do loop e executando "p._getClassForPage('Açúcar')" no console). Por outro lado, se removo os parêntesis que capturariam o nome da predefinição, o loop detecta todas (mas aí ainda é preciso inserir mais algum código para extrair o nome da predefinição efetivamente). Helder.wiki (discussão) 21h42min de 13 de junho de 2014 (UTC)
Já entendi: Uma vez que é encontrada a predefinição "em tradução", o loop termina porque páginas em tradução não podem ser de nível 4. Consequentemente as predefinições seguintes não são analisadas.
Helder.wiki (discussão) 19h38min de 19 de junho de 2014 (UTC)
Fiz mais algumas mudanças e agora já obtenho table#1 { 3, "encontrado predefinição:em tradução", } quando executo mw.logObject(p._getClassForPage('Açúcar')) no console. Testei também em outros artigos. Nestes a avaliação e o motivo foram os mesmos que o script em python fornece: matemática, álgebra, Processo s, Tachysphex lindbergi, Rone, Batgirl. Já nestes outros, a avaliação foi a mesma mas o motivo foi diferente: geografia (3, 'encontrado predefinição:em tradução' vs 'não foram encontradas referências na seção "Geógrafo e Professor de Geografia"'), Língua inglesa (3, 'encontrado predefinição:em tradução' vs 'não foram encontradas referências na seção "Vocabulário"') ).Helder.wiki (discussão) 01h53min de 20 de junho de 2014 (UTC)

Comparação[editar código-fonte]

Seria bom comparar os resultados dos scripts em Lua e em Python, para N artigos (uns 500?), e gerar uma tabela com eventuais diferenças nas avaliações (diferenças nos critérios não me parecem muito relevantes, ou são?). Helder.wiki (discussão) 01h53min de 20 de junho de 2014 (UTC)

Consegui gerar uma tabela para comparar os resultados dos dois scripts em uma lista de artigos escolhidos ao acaso. Na amostra, a qualidade estimada para os seguintes artigos deixou de ser "2 (menos de 12000 bytes)":
  • Kelly Holmes passou para "3 (menos de 20000 bytes)"
    Esta página tem 11818 caracteres, que ocupam 12022 bytes (letras acentuadas ocupam mais espaço, por exemplo). Ao contrário do que estava documentado em Wikipédia:Avaliação automática, o script em python conta o número de caracteres (pois usa len). Podemos obter o mesmo resultado em lua trocando #text por mw.ustring.len( text ), mas nesse caso é preciso atualizar a documentação.
  • Gliese 581 d passou para "1 (menos de 5 parágrafos)"
    Neste artigo, o módulo em Lua estáestava levando em conta apenas os parágrafos "O movimento de...", "Em média, a luz...", "Gliese 581 d é provavelmente..." e "Investigadores do Centro...". Já o script em python também conta os parágrafos "Uma equipe de astrônomos..." e "Pensava-se originalmente...".
    Aparentemente, o comando mw.ustring.gsub(text, '<[Rr][Ee][Ff].-</[Rr][Ee][Ff]>', '') remove desde o "<ref name=udry />" da infobox até o "</ref>" que fecha o <ref name="udry"> da seção "Descoberta", fazendo com que o primeiro parágrafo "Uma equipe de astrônomos..." desapareça. O problema foi resolvido com esta edição.
  • Marco Cláudio Marcelo (cônsul em 222 a.C.) passou para "1 (menos de 5 parágrafos)" O problema foi resolvido com esta edição.
  • Gisela da Áustria passou para "1 (menos de 5 parágrafos)"O problema foi resolvido com esta outra edição.
Helder.wiki (discussão) 15h25min de 20 de junho de 2014 (UTC)
Testei com mais um lote de artigos. Estes artigos tinham avaliação "1 (menos de 5 parágrafos)":
  • Imhotep passou para "2 (menos de 12000 bytes)"
    Aqui o módulo se sai melhor do que o marcas.py, que só detectava os parágrafos "A localização...", "É importante..." e "Vídeo '''O Olho de Hórus'''...", pois detecta outros 4 parágrafos: "'''Imhotep''' (por vezes", ": ''Chanceler do Rei do Egito", "Imhotep arquitetou" e "'''Imhotep''' é o antagonista"
  • Rio da Vila passou para "2 (menos de 12000 bytes)"
    Novamente o módulo em Lua está mais preciso na detecção dos parágrafos, por detectar "O '''rio da Vila''' é um ribeiro...", que era ignorado pelo marcas.py
Por outro lado,
  • McLaren MP4-25 passou de "2 (menos de 12000 bytes)" para "1 (menos de 5 parágrafos)"
    O problema aqui parece ser no marcas.py, que faz a divisão por dois com "len(subp)/2" em vez de "len(subp)/2.0" (e consequentemente, 1/2 resulta em 0 em vez de 0.5).
Helder.wiki (discussão) 18h49min de 20 de junho de 2014 (UTC)

O Danilo gerou mais uma lista de avaliações com o marcas.py e eu coloquei nesta tabela para comparar com a avaliação feita pelo módulo. Helder.wiki (discussão) 20h28min de 22 de junho de 2014 (UTC)

Só vi agora que você já tinha gerado uma lista antes. Os que estavam diferentes nessa lista que gerei eram erro do marcas.py e não do módulo. Pensei que as restrições dos Lua patterns em relação às regex faria o módulo ter mais erro que o robô python, mas foi o contrário, o módulo ficou melhor. Danilo.mac(discussão) 00h50min de 23 de junho de 2014 (UTC)
Só para constar: eu compilei as listas acima de 20 e 20 páginas, pois esse era o máximo que a API do MW retornava por vez: rnlimit may not be over 20 (set to 100) for bots or sysops.
O módulo começou a superar o marcas.py depois da mudança na regex que remove referências (vide exemplos acima), pois agora parece que não está mais removendo parágrafos acidentalmente. Helder.wiki (discussão) 01h11min de 23 de junho de 2014 (UTC)

Separar as mensagens da lógica[editar código-fonte]

Acho que seria interessante a separação da interface da lógica, pois fica mais fácil na hora alterar as mensagens e portar o script para uma wiki de outro idioma. !Silent (discussão) 21h29min de 19 de junho de 2014 (UTC)

@!Silent e Danilo.mac: fiz um esboço desta separação, mas ainda falta testar com pelo menos um artigo de cada uma das combinações possíveis entre os diversos parâmetros que afetam o texto resultante (bom/destacado/com qualidade de 1 a 4 vs com ou sem wikiprojeto(s) vs com ou sem avaliação humana vs com ou sem data vs etc...). Os testes podem ser feitos copiando o código de /Testes para o módulo e preenchendo o campo "Título da página" abaixo da janela de edição com o nome de alguma página de discussão existente, para comparar o novo resultado com o existente. Helder.wiki (discussão) 23h26min de 8 de julho de 2014 (UTC)
Testei com alguns exemplos, fiz alguns ajustes e atualizei o módulo para a nova versão. Helder.wiki (discussão) 21h39min de 10 de julho de 2014 (UTC)

Categorizações[editar código-fonte]

Estive vendo como a antiga marca categorizava na categoria:!Artigos com avaliação revisada, ela era adicionada quando uma avaliação humana era feita depois de uma avaliação robótica (comparando as datas de |bot= e |rev=). Agora que a avaliação automática é atualizada automaticamente não vejo mais sentido nessa categoria, por mim pode ser removida essa categorização. Danilo.mac(discussão) 20h50min de 23 de junho de 2014 (UTC)

Avaliação de anexos[editar código-fonte]

Talvez seja necessário fazer ajustes nos critérios utilizados quando a página é um anexo: exemplo. Helder.wiki (discussão) 11h32min de 27 de junho de 2014 (UTC)

Ordem de exibição dos projetos[editar código-fonte]

Talvez seja interessante que, no caso de ser informado mais de um projeto com as respectivas importâncias, o módulo reordene-os para que apareça primeiro o projeto para o qual o artigo tem mais importância, e em seguida os demais (em ordem decrescente de importância). Helder.wiki (discussão) 14h15min de 27 de junho de 2014 (UTC)

Quando o editor não informar o motivo de considerar que o artigo está com certa qualidade, e a estimativa automática coincidir com a do editor, o módulo poderia mostra a justificativa do módulo em vez de "motivo não informado". Helder.wiki (discussão) 01h41min de 29 de junho de 2014 (UTC)

Ou, como esse parâmetro que criei nem chegou a ser utilizado, poderíamos simplesmente removê-lo, como o Danilo.mac sugeriu. Helder.wiki (discussão) 16h16min de 30 de junho de 2014 (UTC)

Ao Helder, ao Danilo e aos demais colegas que estão contribuindo para essa funcionalidade, seja escrevendo, testando ou apontando ajustes, dicas, sugestões, meus parabéns!! Há muito esperava ver algo assim, que ajudasse os editores que se preocupam mais com a qualidade dos artigos do que com sua quantidade! Esse módulo reduz um bocado o trabalho de estimar a qualidade de um grupo de artigos, e pode ser muito útil para reativar os wikiprojetos. Valeu mesmo! CasteloBrancomsg 15h14min de 15 de julho de 2014 (UTC)

Gente, percebi que alguns artigos, como Abraham Lincoln e Renascimento são avaliados automaticamente como qualidade 1, quando na verdade deveriam ser 3 ou 4. O relatório no artigo ("estimar qualidade"), mostra corretamente que tem mais de 20 mil caracteres, etc, etc., cumprindo os requisitos, mas estima em qualidade 1. Não consegui identificar qual parte do módulo está causando essa avaliação. Alguém poderia ajudar? CasteloBrancomsg 16h57min de 25 de agosto de 2014 (UTC)

@Castelobranco: para ver a justificativa basta passar o mouse sobre o texto "qualidade 1" da marca de projeto em Discussão:Abraham Lincoln e Discussão:Renascimento. No caso, o primeiro artigo tem um parágrafo que ocupa 2523 bytes ("Um político excepcionalmente...") e o segundo um de 2505 bytes ("No Quattrocento as re..."), e o limite foi estabelecido em 2000 bytes (não caracteres).
O que acha de aumentar a visibilidade do motivo? Helder 17h20min de 25 de agosto de 2014 (UTC)
Entendi, valeu! Vou comentar lá na discussão. CasteloBrancomsg 18h56min de 25 de agosto de 2014 (UTC)

Flutuar para a esquerda e definir largura máxima[editar código-fonte]

Olá, Tá meio estranho a caixa de avaliação centralizada e o bloco de discussões arquivadas, não são relacionados mas acho que deviam ficar lado a lado mesmo, quando tem TOC na página fica muito bagunçado. Seria adicionar isso na tabela:

border: 1px solid #CCC; /*deixar a borda com 1px */
float: left;
margin: 0 0 30px 0;
max-width: 800px;
width: 80%;

Dai edito o bloco das discussões arquivadas pra grudar do lado dessa tabela. Não lembro que coisas mais podem estar na página de discussão mas acho que por enquanto já organiza um pouco. ― Diana m 03h44min de 14 de maio de 2015 (UTC)

  • Ah seria bom adicionar tooltip nas escalas de avaliação e remover o link da imagem, ou o tooltip ser "sobre esta imagem", porque as pessoas pensam que é algo clicável rs.― Diana m
Em que página está achando bagunçada a versão atual? E como ficará assim que o Flow mudar tudo para a lateral direita (ver screenshots na phab:T88114)? Helder 09h18min de 14 de maio de 2015 (UTC)
Olá, como está agora, todas as páginas que tiverem a tabela de avaliação/wikiprojeto, discussão arquivada, TOC, demais avisos. Mas se vai ficar lateral no Flow então ok deixar como está mesmo. ― Diana m 18h06min de 14 de maio de 2015 (UTC)
Veja como ficou a mw:Talk:Flow depois da mudança. Helder 13h04min de 21 de maio de 2015 (UTC)
As marcas de projeto e avaliação então vão ficar na direita na área cinza mesmo? Acho ótimo que então dá pra ocultar.― Diana m 17h31min de 21 de maio de 2015 (UTC)

Só categorizar discussões de artigos[editar código-fonte]

Olá, faz tempo que não mexo com este código, alguém mais familiarizado (He7d3r?) poderia colocar um teste para a marca não categorizar em domínios que não sejam o Discussão? O Py4nf me falou sobre esta página que está entrando nas matrizes devido a essas categorizações. Danilo.mac(discussão) 17h39min de 21 de novembro de 2016 (UTC)

Se eu não me engano, a categorização é parte do que é testado nos exemplos, então não é exatamente uma boa ideia remover... Helder 18h31min de 21 de novembro de 2016 (UTC)