languagetool-org / languagetool

Style and Grammar Checker for 25+ Languages
https://languagetool.org
GNU Lesser General Public License v2.1
12.29k stars 1.39k forks source link

[pt] Disambiguator improvement: "a" (SPS00) to DA.+ - 2023-01-29 #7764

Open marcoagpinto opened 1 year ago

marcoagpinto commented 1 year ago

@jaumeortola

Hello!

The sentences:

Quero ser tanto rico como a Ana.
Quero ser tanto rico como o Rui.
Quero ser tão rico como a Ana.
Quero ser tão rico como o Rui.

“a Ana” appears as SPS00 + NP “o Rui” appears as DA + NP

Can it be improved?

Thanks!

jaumeortola commented 1 year ago

Done for this particular case.

The problem is that the disambiguation rule A_PREPOSITION[5] is too greedy. I will test what happens if it is disabled.

jaumeortola commented 1 year ago

This is the list of failures if we disable the rule A_PREPOSITION[5]. I leave it here for reference. The most worrying thing is that the rules work with a wrong disambiguation. We'll need to fix at the same time the disambiguation and all these rules.

Test failure for rule VERBO_INFINITIVO[1] in file /org/languagetool/rules/pt/grammar.xml (line 3393): "Quero come a fruta."
Errors expected: 1
Errors found   : 2
Message: Use a forma verbal no infinitivo.
Analyzed token readings: [/SENT_START*] Quero[querar/VMIP1S0*,querer/VMIP1S0*]  [ /null*] come[comer/VMIP3S0,comer/VMM02S0]  [ /null*] a[a/SPS00,o/DA0FS0]  [ /null*] fruta[fruta/NCFS000,frutar/VMIP3S0,frutar/VMM02S0] .[./SENT_END*,./_PUNCT_PERIOD*,./_PUNCT*]
Matches: [VERBO_INFINITIVO[1]:5-10:Use a forma verbal no infinitivo., VERBO_INFINITIVO[1]:5-10:Use a forma verbal no infinitivo.]
    at org.languagetool.rules.patterns.PatternRuleTest.addError(PatternRuleTest.java:487)
    at org.languagetool.rules.patterns.PatternRuleTest.testBadSentences(PatternRuleTest.java:626)
    at org.languagetool.rules.patterns.PatternRuleTest.lambda$testGrammarRulesFromXML$2(PatternRuleTest.java:522)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)

[ERROR] org.languagetool.rules.pt.PortuguesePatternRuleTest.testRules  Time elapsed: 15.513 s  <<< ERROR!
org.languagetool.rules.patterns.PatternRuleTest$PatternRuleTestFailure: 
Test failure for rule VERBO_INFINITIVO[1] in file /org/languagetool/rules/pt/grammar.xml (line 3393): "Quero come a fruta."
Errors expected: 1
Errors found   : 2
Message: Use a forma verbal no infinitivo.
Analyzed token readings: [/SENT_START*] Quero[querar/VMIP1S0*,querer/VMIP1S0*]  [ /null*] come[comer/VMIP3S0,comer/VMM02S0]  [ /null*] a[a/SPS00,o/DA0FS0]  [ /null*] fruta[fruta/NCFS000,frutar/VMIP3S0,frutar/VMM02S0] .[./SENT_END*,./_PUNCT_PERIOD*,./_PUNCT*]
Matches: [VERBO_INFINITIVO[1]:5-10:Use a forma verbal no infinitivo., VERBO_INFINITIVO[1]:5-10:Use a forma verbal no infinitivo.]
    at org.languagetool.rules.patterns.PatternRuleTest.addError(PatternRuleTest.java:487)
    at org.languagetool.rules.patterns.PatternRuleTest.testBadSentences(PatternRuleTest.java:626)
    at org.languagetool.rules.patterns.PatternRuleTest.lambda$testGrammarRulesFromXML$2(PatternRuleTest.java:522)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)

[ERROR] org.languagetool.rules.pt.PortuguesePatternRuleTest.testRules  Time elapsed: 15.514 s  <<< ERROR!
org.languagetool.rules.patterns.PatternRuleTest$PatternRuleTestFailure: 
Test failure for rule VERBO_INFINITIVO[1] in file /org/languagetool/rules/pt/grammar.xml (line 3393): "Quero come a fruta."
Errors expected: 1
Errors found   : 2
Message: Use a forma verbal no infinitivo.
Analyzed token readings: [/SENT_START*] Quero[querar/VMIP1S0*,querer/VMIP1S0*]  [ /null*] come[comer/VMIP3S0,comer/VMM02S0]  [ /null*] a[a/SPS00,o/DA0FS0]  [ /null*] fruta[fruta/NCFS000,frutar/VMIP3S0,frutar/VMM02S0] .[./SENT_END*,./_PUNCT_PERIOD*,./_PUNCT*]
Matches: [VERBO_INFINITIVO[1]:5-10:Use a forma verbal no infinitivo., VERBO_INFINITIVO[1]:5-10:Use a forma verbal no infinitivo.]
    at org.languagetool.rules.patterns.PatternRuleTest.addError(PatternRuleTest.java:487)
    at org.languagetool.rules.patterns.PatternRuleTest.testBadSentences(PatternRuleTest.java:626)
    at org.languagetool.rules.patterns.PatternRuleTest.lambda$testGrammarRulesFromXML$2(PatternRuleTest.java:522)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)

[ERROR] org.languagetool.rules.pt.PortuguesePatternRuleTest.testRules  Time elapsed: 15.514 s  <<< ERROR!
org.languagetool.rules.patterns.PatternRuleTest$PatternRuleTestFailure: 
Test failure for rule VERBO_INFINITIVO[1] in file /org/languagetool/rules/pt/grammar.xml (line 3393): "Quero come a fruta."
Errors expected: 1
Errors found   : 2
Message: Use a forma verbal no infinitivo.
Analyzed token readings: [/SENT_START*] Quero[querar/VMIP1S0*,querer/VMIP1S0*]  [ /null*] come[comer/VMIP3S0,comer/VMM02S0]  [ /null*] a[a/SPS00,o/DA0FS0]  [ /null*] fruta[fruta/NCFS000,frutar/VMIP3S0,frutar/VMM02S0] .[./SENT_END*,./_PUNCT_PERIOD*,./_PUNCT*]
Matches: [VERBO_INFINITIVO[1]:5-10:Use a forma verbal no infinitivo., VERBO_INFINITIVO[1]:5-10:Use a forma verbal no infinitivo.]
    at org.languagetool.rules.patterns.PatternRuleTest.addError(PatternRuleTest.java:487)
    at org.languagetool.rules.patterns.PatternRuleTest.testBadSentences(PatternRuleTest.java:626)
    at org.languagetool.rules.patterns.PatternRuleTest.lambda$testGrammarRulesFromXML$2(PatternRuleTest.java:522)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)

[ERROR] org.languagetool.rules.pt.PortuguesePatternRuleTest.testRules  Time elapsed: 15.515 s  <<< ERROR!
org.languagetool.rules.patterns.PatternRuleTest$PatternRuleTestFailure: 
Test failure for rule INIMIGO_ADVERSÁRIO_ALIADO_OPONENTE[1] in file /org/languagetool/rules/pt/grammar.xml (line 48954): "O objetivo é alcançar a bandeira do inimigo."
Errors expected: 1
Errors found   : 0
Message: Esta perífrase poderá ser simplificada.
Analyzed token readings: [/SENT_START*] O[o/DA0MS0*]  [ /null*] objetivo[objetivo/AQ0MS0,objetivo/NCMS000]  [ /null*] é[ser/VMIP3S0]  [ /null*] alcançar[alcançar/VMN0000,alcançar/VMN01S0,alcançar/VMN03S0,alcançar/VMSF1S0,alcançar/VMSF3S0]  [ /null*] a[a/SPS00,o/DA0FS0]  [ /null*] bandeira[bandeira/NCFS000,bandeirar/VMIP3S0,bandeirar/VMM02S0,bandeiro/AQ0FS0]  [ /null*] do[de:o/SPS00:DA0MS0]  [ /null*] inimigo[inimigo/AQ0MS0,inimigo/NCMS000] .[./SENT_END*,./_PUNCT_PERIOD*,./_PUNCT*]
Matches: []
    at org.languagetool.rules.patterns.PatternRuleTest.addError(PatternRuleTest.java:487)
    at org.languagetool.rules.patterns.PatternRuleTest.testBadSentences(PatternRuleTest.java:626)
    at org.languagetool.rules.patterns.PatternRuleTest.lambda$testGrammarRulesFromXML$2(PatternRuleTest.java:522)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)

[ERROR] org.languagetool.rules.pt.PortuguesePatternRuleTest.testRules  Time elapsed: 15.515 s  <<< ERROR!
org.languagetool.rules.patterns.PatternRuleTest$PatternRuleTestFailure: 
Test failure for rule INIMIGO_ADVERSÁRIO_ALIADO_OPONENTE[1] in file /org/languagetool/rules/pt/grammar.xml (line 48954): "As forças da NATO querem alcançar a bandeira dos oponentes."
Errors expected: 1
Errors found   : 0
Message: Esta perífrase poderá ser simplificada.
Analyzed token readings: [/SENT_START*] As[o/DA0FP0*]  [ /null*] forças[força/NCFP000]  [ /null*] da[de:o/SPS00:DA0FS0]  [ /null*] NATO[NATO/NPFS000]  [ /null*] querem[querer/VMIP3P0,querar/VMM03P0,querar/VMSP3P0]  [ /null*] alcançar[alcançar/VMN0000]  [ /null*] a[a/SPS00,o/DA0FS0,o/PD0FS000,o/PP3FSA00]  [ /null*] bandeira[bandeira/NCFS000,bandeirar/VMIP3S0,bandeirar/VMM02S0,bandeiro/AQ0FS0]  [ /null*] dos[de:o/SPS00:DA0MP0]  [ /null*] oponentes[oponente/AQ0CP0,oponente/NCCP000] .[./SENT_END*,./_PUNCT_PERIOD*,./_PUNCT*]
Matches: []
    at org.languagetool.rules.patterns.PatternRuleTest.addError(PatternRuleTest.java:487)
    at org.languagetool.rules.patterns.PatternRuleTest.testBadSentences(PatternRuleTest.java:626)
    at org.languagetool.rules.patterns.PatternRuleTest.lambda$testGrammarRulesFromXML$2(PatternRuleTest.java:522)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)

[ERROR] org.languagetool.rules.pt.PortuguesePatternRuleTest.testRules  Time elapsed: 15.516 s  <<< ERROR!
org.languagetool.rules.patterns.PatternRuleTest$PatternRuleTestFailure: 
Test failure for rule TESE_PHD_PROCURAR_PROVAR_PROVARA[7] in file /org/languagetool/rules/pt/grammar.xml (line 52396): Did not expect error in:
  Reconheço a importância que foi garantir seus direitos.
  Analyzed token readings: [/SENT_START*] Reconheço[reconhecer/VMIP1S0*]  [ /null*] a[o/DA0FS0]  [ /null*] importância[importância/NCFS000]  [ /null*] que[que/CS,que/PE0CN000,que/PR0CN000,que/PT0CN000]  [ /null*] foi[ir/VMIS3S0,ser/VMIS3S0]  [ /null*] garantir[garantir/VMN0000]  [ /null*] seus[seu/DP3MPS]  [ /null*] direitos[direito/NCMP000] .[./SENT_END*,./_PUNCT_PERIOD*,./_PUNCT*]

    at org.languagetool.rules.patterns.PatternRuleTest.addError(PatternRuleTest.java:487)
    at org.languagetool.rules.patterns.PatternRuleTest.testCorrectSentences(PatternRuleTest.java:807)
    at org.languagetool.rules.patterns.PatternRuleTest.lambda$testGrammarRulesFromXML$2(PatternRuleTest.java:521)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)

[ERROR] org.languagetool.rules.pt.PortuguesePatternRuleTest.testRules  Time elapsed: 15.517 s  <<< ERROR!
org.languagetool.rules.patterns.PatternRuleTest$PatternRuleTestFailure: 
Test failure for rule VERBO_HIFENIZADOR_VERBOS_2[1] in file /org/languagetool/rules/pt/pt-PT/grammar.xml (line 3958): Did not expect error in:
  Certamente o capacete lhe salvou a vida.
  Analyzed token readings: [/SENT_START*] Certamente[Certamente/RM*]  [ /null*] o[o/DA0MS0]  [ /null*] capacete[capacete/NCMS000]  [ /null*] lhe[lhe/PP3CSD00]  [ /null*] salvou[salvar/VMIS3S0]  [ /null*] a[o/DA0FS0]  [ /null*] vida[vida/NCFS000] .[./SENT_END*,./_PUNCT_PERIOD*,./_PUNCT*]

    at org.languagetool.rules.patterns.PatternRuleTest.addError(PatternRuleTest.java:487)
    at org.languagetool.rules.patterns.PatternRuleTest.testCorrectSentences(PatternRuleTest.java:807)
    at org.languagetool.rules.patterns.PatternRuleTest.lambda$testGrammarRulesFromXML$2(PatternRuleTest.java:521)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)

[ERROR] org.languagetool.rules.pt.PortuguesePatternRuleTest.testRules  Time elapsed: 15.522 s  <<< ERROR!
org.languagetool.rules.patterns.PatternRuleTest$PatternRuleTestFailure: 
Test failure for rule VERBO_HIFENIZADOR_VERBOS_2[3] in file /org/languagetool/rules/pt/pt-PT/grammar.xml (line 4037): Did not expect error in:
  Certamente o capacete lhe salvou a vida.
  Analyzed token readings: [/SENT_START*] Certamente[Certamente/RM*]  [ /null*] o[o/DA0MS0]  [ /null*] capacete[capacete/NCMS000]  [ /null*] lhe[lhe/PP3CSD00]  [ /null*] salvou[salvar/VMIS3S0]  [ /null*] a[o/DA0FS0]  [ /null*] vida[vida/NCFS000] .[./SENT_END*,./_PUNCT_PERIOD*,./_PUNCT*]

    at org.languagetool.rules.patterns.PatternRuleTest.addError(PatternRuleTest.java:487)
    at org.languagetool.rules.patterns.PatternRuleTest.testCorrectSentences(PatternRuleTest.java:807)
    at org.languagetool.rules.patterns.PatternRuleTest.lambda$testGrammarRulesFromXML$2(PatternRuleTest.java:521)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
marcoagpinto commented 1 year ago

Ohhhhhhhhh… 😢 😢 😢 😢 😢

jaumeortola commented 1 year ago

Okay. I have been able to fix all the test failures, but I haven't disabled A_PREPOSITION[5]. We should do some more testing because it can change many results.

marcoagpinto commented 1 year ago

Yes. 😄

jaumeortola commented 1 year ago

In the attached file (an HTML file you can open in a browser), you can see the differences in tests when we disable A_PREPOSITION[5]. There are 90 added matches, and 106 removed matches. We need to know if the changes are positive or negative (desirable or not), and adjust the disambiguation and the rules accordingly. @susanaboatto

tatoeba-sentences-pt_20230130.zip

marcoagpinto commented 1 year ago

@jaumeortola

There are several false positives, such as:

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o tabaco
+O quarto fedia a tabaco. 
+               ^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
jaumeortola commented 1 year ago

@marcoagpinto Thanks. I fixed the disambiguation for "feder a". We'll need to check all the changes in the diff.

marcoagpinto commented 1 year ago

@marcoagpinto Thanks. I fixed the disambiguation for "feder a". We'll need to check all the changes in the diff.

Jaume, “diff” refers to the .zip above or to the nightly diff?

If it is the above one, could you upload a new one with the fix above, and I will look at it this afternoon?

Or maybe @susanaboatto could look at it.

Thanks!

jaumeortola commented 1 year ago

@marcoagpinto It is the diff in the zip file above. I won't repeat the diff for now. With my last commit, we fixed just 4 sentences (fedia a, fede a...).

marcoagpinto commented 1 year ago

@jaumeortola Another wrong additions:

+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a aula; as aulas; a, aulas; a das aulas; a-aulas
+John ainda assiste a aulas de jornalismo à noite. 
+                   ^^^^^^^                        
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o sabichão
+Este homem é metido a sabichão, comporta-se como se soubesse tudo. 
+                    ^^^^^^^^^^                                     
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)

+Rule ID: PHRASAL_VERB_COM[2] premium: false
+Message: Este verbo não utiliza a preposição “com”.
+Suggestion: namorada
+Chamava a namorada com pedradas na janela, e ela sempre respondia. ...
+          ^^^^^^^^^^^^                                             
+More info: https://pt.wikipedia.org/wiki/Reg%C3%AAncia_verbal

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o professor
+Não se meta a professor, você pode contradizer-se. 
+            ^^^^^^^^^^^                            
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: E_É_SÃO_FOI_FORAM_SENDO_

 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o story
+Já tenho a story-line. 
+         ^^^^^^^       
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
+
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Message:

 ^^^^
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o cargo
+... Bíblia do idioma grego para o armênio ficou a cargo do monge Mesrop, um trabalho que começou no ...
+                                                ^^^^^^^                                             
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
+
 Rule ID: HUNSPE

+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: roupou
+Tom passou a roupa. 
+    ^^^^^^^^^^^^^^  
+Tags: [picky]
 Rule ID: FRAGMENT_TWO_ARTICLES[1] premium: false prio=50
 M

+Rule ID: GENERAL_VERB_AGREEMENT_ERRORS[14] premium: false prio=-55
+Message: Possível erro de concordância verbal.
+Suggestion: a pílula regularmente não fica; a pílula regularmente, não ficam
+Você sabia que os homens que tomam a pílula regularmente não ficam grávidos? 
+                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^           
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_verbal

+Rule ID: GENERAL_VERB_AGREEMENT_ERRORS[14] premium: false prio=-55
+Message: Possível erro de concordância verbal.
+Suggestion: a senhora curte; a senhora, Curtis
+Esta é a senhora Curtis. 
+       ^^^^^^^^^^^^^^^^  
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_verbal
 Rule ID: REMOVER_EU_NÓS[1] premium: false
 Messag

            ^^^^^^^^^
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: roupou
+Tom passou a roupa dele. 
+    ^^^^^^^^^^^^^^       
+Tags: [picky]
 Rule ID: PT_WORDINESS_REPLACE_MUITO_BOAS premium: false prio=-13
 Me

 More info: https://pt.wikipedia.org/wiki/V%C3%ADcio_de_linguagem#Prolixidade_ou_preciosismo
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: auli
+Em vez de tomar notas, passei a aula inteira rabiscando. 
+                       ^^^^^^^^^^^^^                     
+Tags: [picky]
 Rule ID: TESE_PHD_PROCURAR_PROVAR_PROVARA[4] premium: false
 Messag

 Tags: [picky]
+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a aula; as aulas; a, aulas; a das aulas; a-aulas
+Com que frequência Tom assiste a aulas de francês? 
+                               ^^^^^^^             
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal
 Rule ID: PT_BARBARISMS_REPLACE_HOCKEY premium: false prio=-10
 Mes

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o giz
+Esta lousa é a giz. 
+             ^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Ru

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o pó
+Eu não os reduzo a pó. 
+                 ^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o pó
+Eu não as reduzo a pó. 
+                 ^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: VER_OBSERVAR_CONSTATAR[1] premium: false
 Message: Nu

                                                 ^^^^^
+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a aula; as aulas; a, aulas; a das aulas; a-aulas
+Ela assiste a aulas de piano uma vez por semana. 
+            ^^^^^^^                              
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal
 Rule ID: PT_REDUNDANCY_REPLACE_ANOS_DE_IDADE premium: false prio=-12

           ^^^^^^
+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a aula; as aulas; a, aulas; a das aulas; a-aulas
+O menino assistiu a aulas de piano e de canto. 
+                  ^^^^^^^                      
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal
 Rule ID: E_NO_COMECO[1] premium: false prio=-50
 Mes

 ^^^^^^^^^
 Tags: [picky]
+Rule ID: A_WORD[2] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: as células; a célula
+Este estudo não se refere apenas a células-tronco. 
+                                 ^^^^^^^^^         
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Mess

             ^^^^^
 Tags: [picky]
+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a ameaça; as ameaças; a, ameaças; a das ameaças; a-ameaças
+Tive que recorrer a ameaças para conseguir meu dinheiro de volta. 
+                  ^^^^^^^^^                                       
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal
 Rule ID: HÁ-ATRÁS[1] premium: false
 Message: Com o verbo haver não é necessário usar “atrás”: “há centenas de anos”.
 Suggesti

 ^^^^^^^^
 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o álcool
+O meu carro é movido a álcool. 
+                     ^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: TESE_PHD_PROCURAR_PROVAR_PROVARA[4] premium: false
 Message: S

+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: luzir
+As janelas servem para deixar passar a luz e o ar. 
+                              ^^^^^^^^^^^^         
+Tags: [picky]
 Rule ID: EU_NÓS_REMOVAL[1] premium: false prio=-90
 Message: P

+
+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a mensagem; as mensagens; a, mensagens; a das mensagens; a-mensagens
+...o costume irritante de quase nunca responder a mensagens de e-mail. 
+                                                ^^^^^^^^^^^            
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal
 Rule ID: PT_CLICHE_REPLACE_PAPAS_NA_LÍNGUA premium: false prio=-17
 M

 ^^^^^^^^^^
 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o tabaco
+A sala cheirava a tabaco. 
+                ^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: DEPOIS_DE_APÓS[1] premium: false
 Message: Substitua por “após”.
 Suggestion:

 Em 1492 Antonio de Nebrija disse que a língua estava a serviço do impér...
                    ^^^^^^^
+
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o serviço
+...Antonio de Nebrija disse que a língua estava a serviço do império. 
+                                                ^^^^^^^^^             
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: EU_NÓS_REMOVAL[1] premium: false prio=-90
 Message: Par

 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o camelo
+Ela andava a camelo. 
+           ^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Me

 Tags: [picky]
+Rule ID: QUE_SUBJ_VS_INF_PESS[2] premium: false
+Message: Esta perífrase pode ser simplificada.
+Suggestion: você voltar
+O que mais posso fazer para que você volte a estudar? 
+                            ^^^^^^^^^^^^^^            
 Rule ID: SMART_QUOTES[1] premium: false
 Mess

 Tags: [picky]
+
+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a milha; as milhas; a, milhas; a das milhas; a-milhas
+...ê se der conta de que eu fui embora, estarei a milhas de distância. Não tente me encontrar. 
+                                                ^^^^^^^^                                       
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal
 Rule ID: SMART_QUOTES[1] premium: false

                             ^^^
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: casando
+O Tom desceu a Rua Park passando a casa da Mary. 
+                        ^^^^^^^^^^^^^^^          
+Tags: [picky]
 Rule ID: EU_NÓS_REMOVAL[1] premium: false prio=-90
 Mes

        ^^^^^^^^
+Rule ID: A_WORD[2] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: as bicicletas; a bicicleta
+A zona dedicada a bicicletas fica mais frequentemente na traseira do trem...
+                ^^^^^^^^^^^^                                             
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Me

+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a pergunta; as perguntas; a, perguntas; a das perguntas; a-perguntas
+... filosofia não deve cuidar mais de responder a perguntas do que de suscitá-las. 
+                                                ^^^^^^^^^^^                        
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal

+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a pessoa; as pessoas; a, pessoas; a das pessoas; a-pessoas
+O esperanto, língua humanamente neutra, dá a pessoas de diferentes nações a condição de se fazere...
+                                           ^^^^^^^^^                                             
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal
 Rule

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o óleo
+Desde muito tempo ele vinha sonhando pintar a óleo. 
+                                            ^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: ELLI

 ^^^^^^^^^^^^^^^^^^^^
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o julgamento
+... da igreja católica, e Galileu foi submetido a julgamento por heresia pela Inquisição. 
+                                                ^^^^^^^^^^^^                              
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: SMART_QUOTES[1] premium: false
 Message: 

 ^^^^^^^^
 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o deus
+O xamã pode transmitir a deus o pedido e a esperança do homem. 
+                       ^^^^^^                                  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: GENTILICOS_LINGUAS[1] premium: false
 Message: Os 

 ^^^^^^
 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o vômito
+Mamão maduro cheira a vômito. 
+                    ^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Message: En

 Tags: [picky]
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: salar
+Você poderia passar a salada? 
+             ^^^^^^^^^^^^^^^  
+Tags: [picky]
 Rule ID: EU_NÓS_REMOVAL[1] premium: false prio=-90
 Mes

+Rule ID: GENERAL_VERB_AGREEMENT_ERRORS[14] premium: false prio=-55
+Message: Possível erro de concordância verbal.
+Suggestion: a História tende; a História, tendem
+As pessoas que ignoram a História tendem a repeti-la. 
+                       ^^^^^^^^^^^^^^^^^              
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_verbal
 Rule ID: EU_NÓS_REMOVAL[1] premium: false prio=-90
 Mes

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o diretor
+Tom foi promovido a diretor. 
+                  ^^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: PT_WORDINESS_REPLACE_DE_VEZ_EM_QUANDO premium: false prio=-13
 Mes

+
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o álcool
+Este carro carro é a álcool. 
+                   ^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Me

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o contragosto
+O juiz riu a contragosto. 
+           ^^^^^^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule

 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o julgamento
+Fadil foi preso e submetido a julgamento por assassinato em primeiro grau. 
+                            ^^^^^^^^^^^^                                   
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: SMART_QUOTES[1] premium: false

 Tags: [picky]
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: bolou
+Tom passou a bola para mim. 
+    ^^^^^^^^^^^^^           
+Tags: [picky]
 Rul

 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o diretor
+Ele foi promovido a diretor. 
+                  ^^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Ru

 Tags: [picky]
+
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: virar
+Tom, eu não vou viajar, vou passar a virada do ano em casa! 
+                            ^^^^^^^^^^^^^^^                 
+Tags: [picky]
 Rule ID: COLOCAÇÃO_ADVÉRBIO[1] premium: false
 Message

 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o ladrão
+Ladrão que rouba a ladrão tem cem anos de perdão. 
+                 ^^^^^^^^                         
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
+
 Ru

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o avarento
+Pedir a avarento, é caçar no mar. 
+      ^^^^^^^^^^                  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Messa

 Tags: [picky]
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: ferrar
+A tábua de passar a ferro está na despensa. 
+           ^^^^^^^^^^^^^^                   
+Tags: [picky]
 Rule ID

 Tags: [picky]
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: ferrar
+Não sei passar a ferro. 
+        ^^^^^^^^^^^^^^  
+Tags: [picky]
 Rule ID: EU_NÓS_REMOVAL[1] premium: false prio=-90
 Message: P

 Tags: [picky]
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: ferrar
+Detesto passar a ferro. 
+        ^^^^^^^^^^^^^^  
+Tags: [picky]
 Rule ID: EU_NÓS_REMOVAL[1] premium: false prio=-90
 Message: Pa

                          ^^^^^^^
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: roupei
+Já passei a roupa a ferro. 
+   ^^^^^^^^^^^^^^          
+Tags: [picky]
 Rule ID: P

 Tags: [picky]
+Rule ID: A_WORD[2] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: as milhas; a milha
+Sidnei fica a milhas daqui. 
+            ^^^^^^^^        
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
+
+Rule ID: GENERAL_NUMBER_AGREEMENT_ERRORS[5] premium: false
+Message: Possível erro de concordância de número.
+Suggestion: a milha; as milhas; a, milhas; a das milhas; a-milhas
+Sidnei fica a milhas daqui. 
+            ^^^^^^^^        
+More info: https://pt.wikibooks.org/wiki/Portugu%C3%AAs/Concord%C3%A2ncia/Concord%C3%A2ncia_nominal
 Rule ID: EU_NÓS_REMOVAL[1] premium: false prio=-90
 Messag

 Tags: [picky]
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: bolem
+Passem a bola. 
+^^^^^^^^^^^^^  
+Tags: [picky]
 Rule ID: SMART_QUOTES[1] premium: false
 Message: Uti

                                   ^^^^
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: ferro
+É a primeira vez que passo a ferro. 
+                     ^^^^^^^^^^^^^  
+Tags: [picky]
 Rule ID: VER_OBSERVAR_CONSTATAR[1] premium: false
 Message:

                         ^^^^^^^^
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: ferrar
+Onde está a roupa para passar a ferro? 
+                       ^^^^^^^^^^^^^^  
+Tags: [picky]
 Rule ID: PT_BR_SIMPLE_REPLACE premium: false prio=-50
 Message:

                         ^^^^^^^
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: ferrar
+Estou farto de passar a ferro. 
+               ^^^^^^^^^^^^^^  
+Tags: [picky]
 Rule ID: SMART_QUOTES[1] premium: false
 Messa

+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o serviço
+José tinha trinta anos quando se pôs a serviço do faraó, o rei do Egito. Despedindo-se do f...
+                                     ^^^^^^^^^                                             
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Me

                      ^^^^^^^^^^^^^
 Tags: [picky]
+Rule ID: A_WORD[1] premium: false
+Message: Possível erro de concordância.
+Suggestion: o prefeito
+Tom Jackson está concorrendo a prefeito. 
+                             ^^^^^^^^^^  
+More info: https://pt.wikipedia.org/wiki/Artigo_(gram%C3%A1tica)
 Rule ID: TESE_PHD_PROCURAR_PROVAR_PROVARA[5] premium: false
 Messa

 ^^^^^
+
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: roupando
+Katya está passando a roupa com o novo ferro que Sasha deu a ela. 
+           ^^^^^^^^^^^^^^^^                                       
+Tags: [picky]
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Message: Encontrado possível erro de ortografia.
 Suggestio

 ^^^^^
+
+Rule ID: PASSAR_A_VERBO[1] premium: false
+Message: Em certos contextos, esta perífrase pode ser simplificada.
+Suggestion: roupando
+Katya está passando a roupa com o novo ferro que Sasha lhe deu. 
+           ^^^^^^^^^^^^^^^^                                     
+Tags: [picky]
 Rule ID: HUNSPELL_RULE premium: false prio=-50
 Message: En
marcoagpinto commented 1 year ago

@jaumeortola

Basically, most of the false positives are in number+gender agreement.

There are other false positives I haven't added above, as I got lost in the file.

I only looked at +, should I also look at -?

After the above is fixed, could you create another diff with the remaining sentences?

Thanks!

susanaboatto commented 1 year ago

Hi all,

I have improved A_WORD today and fixed some of these problems. I'll check the diff tomorrow to see how they do. I'll have a look at PASSAR_A_VERBO later, too.

jaumeortola commented 1 year ago

Thanks @marcoagpinto and @susanaboatto for your work and comments. Remember that some of the changes we are discussing are not yet in the master branch, and will not appear in the nightly diff. We are testing an important change in the disambiguation of 'a' (determiner vs. preposition). For now, this change is in this branch: https://github.com/languagetool-org/languagetool/tree/pt-disam-a I will fix the “wrong additions” that Marco mentions, and I will run the comparison again.