languagetool-org / portuguese-pos-dict

Portuguese POS tagger
GNU Lesser General Public License v2.1
5 stars 2 forks source link

Testing the new tagger dictionary #5

Closed jaumeortola closed 6 months ago

jaumeortola commented 2 years ago

We have a new tagger dictionary ready to use in this branch: https://github.com/languagetool-org/languagetool/tree/pt-new-pos-dict The differences with the current master branch can be seen in this file. diff-results-2022-04-28T12 50.zip

There are still many undesired differences. I will track here the revision.

marcoagpinto commented 2 years ago

@jaumeortola

Hello!

Sorry, I have been somewhat confused.

A "new tagger dictionary" means that we won't have added.txt any more?

jaumeortola commented 2 years ago

All words in added.txt can be moved to the tagger dictionary. But when necessary, we will be able to add words to added.txt. For each new version of the tagger dictionary, added.txtcan be emptied.

marcoagpinto commented 2 years ago

@jaumeortola @ Ricardo Joseh Lima

Here is the current status of the PT rules Rules Structure 20220428.odt .

jaumeortola commented 2 years ago

@marcoagpinto This is important. I am about to upgrade to the new tagger dictionary. My plan is to do the merge now, and be ready tomorrow morning to solve any major issue that can show up in the nightly diffs, e.g. disabling temporarily some rules if they have too many false positives.

You can see here the kind of diffs we'll find tomorrow. Please, unzip and take a look. There are some 'random' unexpected diffs, but I think it will be manageable. diff-results-2022-05-12T09 17.zip

Is that okay for you?

As I have said in other comments, with the new tagger dictionary, there will be many more tagged words, and many more words that need disambiguation. We'll need to write more disambiguation rules, and better pattern rules. One suggestion for writing rules. <token negate_pos="yes" postag="..."> gives unexpected results. It's better to use <token><exception postag="..."/></token>.

marcoagpinto commented 2 years ago

@jaumeortola

It is okay for me; however, I haven't yet finished the new POSs names list:

This is what I have in a text document:

SUGGEST THE FIXES BELOW AFTER THE RELEASE OF 5.7.
FIX THE NAS/NOS, ETC.:
keep old POSes for legacy/compatibility.
2022-02-25+:

destes + destas

esta

estas

este

estes

das

dos

mas

pela

pelas

pelo

pelos

à > a+a > SPS00+* > SPS00:DA0FS0
à > a+as > SPS00+* > SPS00:DA0FP0

ao > a+o > SPS00+* > SPS00:DA0MS0
aos > a+os > SPS00+* > SPS00:DA0MP0

dela > de+ela > SPS00+PP3FS00 > SPS00:PP3FS00
delas > de+elas > SPS00+PP3FP00 > SPS00:PP3FP00

dele > de+ele > SPS00+PP3MS00 > SPS00:PP3MS00
deles > de+eles > SPS00+PP3MP00 > SPS00:PP3MP00

dessa > de+essas > SPS00+* > SPS00:DD0FS0:PD0FS000
* shouldn't it be: de+essa?
dessas > de+estas > SPS00+* > SPS00:DD0FP0:PD0FP000
* shouldn't it be: de+essas?

disso > de+isso > SPS00+PD0NN00 > SPS00:PD0NN00

na > em+a > SPS00+DA > SPS00:DA0FS0
nas > em+as > SPS00+DA > SPS00:DA0FP0

no > em+o > SPS00+DA > SPS00:DA0MS0
nos > em+os > SPS00+DA > SPS00:DA0MP0

nela > em+ela > SPS00+PP3FS00 > SPS00:PP3FS00
nelas > em+elas > SPS00+PP3FP00 > SPS00:PP3FP00

nele > em+ele > SPS00+PP3MS00 > SPS00:PP3MS00
neles > em+eles > SPS00+PP3MP00 > SPS00:PP3MP00

Also, I need to use negate_pos because some rules work better this way (are easier to create). If I use “exception” I will have to add there all possibilities, while negating we just negate one or more postags.

Thanks!

jaumeortola commented 2 years ago

Most of the new tags for contractions are here (https://github.com/languagetool-org/portuguese-pos-dict/blob/main/src-dict/resta-lt.txt), and the XML rules have been updated accordingly. If we find something missing, it can be put in added.txt (and later on moved to the tagger dictionary).

marcoagpinto commented 2 years ago

Excellent work!

Thank you, @jaumeortola

PS→ Why can't I tag Ricardo Joseh Lima?

@ Ricardo Joseh Lima

jaumeortola commented 2 years ago

Okay. I will do the merge now. I suggest not doing major changes today in the rules, until we see tomorrow's differences (and fix eventual problems).

Why can't I tag Ricardo Joseh Lima?

I don't know. He has not been mentioned before. You need to write his full username.

ricardojosehlima commented 2 years ago

Hi @jaumeortola and @marcoagpinto the first tagging of my name 14 days ago also didn't work I don't know why and only now I am seeing this thread, came here because Marco tagged me in another thread and linked to here.

It's really a huge and great work being done, and I can be looking with some time and attention to some issues.

One that draws my attention is the paronym rule that I was discussing with Marco in another thread. The cases that end with 'a' are problematic, the results for 'previa' and 'varia' are false positives - the suggestions shouldn't be made. In that thread I suggested that verbs ending with 'a' shouldn't be part of this rule or should have some more severe restrictions for the rule to apply.

Also, there seem to be two files concerning barbarisms: result_java_PT_BARBARISMS_REPLACE seems to apply only to pt-pt but result_grammar_BARBARISMS[1] seems to apply to all variants of Portuguese and if this is the case for this file then it needs revision for the Brazilian variant, I can make it soon.

jaumeortola commented 2 years ago

Also, I need to use negate_pos because some rules work better this way (are easier to create). If I use “exception” I will have to add there all possibilities, while negating we just negate one or more postags.

@marcoagpinto You don't need to add "all possibilities". Usually, you can write the same postag with negate_pos or inside exception. But using negate_pos the logic can be tricky and difficult to grasp. With exception, the logic is much easier, that's why I recommend to use exception.

jaumeortola commented 2 years ago

@marcoagpinto Have you looked into the zip file I posted here? These are (roughly) the differences we'll find in the nightly diffs tomorrow. We can start to address any problems we detect. If you tell me where the false positives are, I can help to fix them. For example, I am fixing now "quantas pessoas" in GENERAL_GENDER_AGREEMENT_ERRORS[3].

marcoagpinto commented 2 years ago

@jaumeortola

I unzipped the file and opened a couple of HTMLs to see how they look like.

At 5am, I will start working on the real thing. 🙂

marcoagpinto commented 2 years ago

I need to download the nightly tonight to have all the new postags (.oxt + stand-alone + wikipedia).

marcoagpinto commented 2 years ago

@jaumeortola

I have sent an e-mail to the Health Centre asking for a medical leave, so I am at home this weekend, and maybe the next.

Could you explain what I should do?

Looking at the 2022-05-13 results, I spotted: https://internal1.languagetool.org/regression-tests/via-http/2022-05-13/pt-PT/result_grammar_INFORMALITIES[3].html

It removed thousands of hits with diminutives.

I now agree that it is a good choice to remove them.

Thanks!

marcoagpinto commented 2 years ago

@jaumeortola

I have downloaded the nightly stand-alone tool.

TESTRULES PT throws tons of errors:

C:\Users\marco\Desktop\LanguageTool-20220514-snapshot\LanguageTool-5.8-SNAPSHOT>testrules pt
Running XML pattern tests...
LanguageTool version 5.8-SNAPSHOT (2022-05-14 16:45:35 +0000, 485e17b)
Known languages: [Arabic, English, English (US), English (GB), English (Australian), English (Canadian), English (New Zealand), English (South African), Persian, French, German, German (Germany), German (Austria), German (Swiss), Simple German, Polish, Catalan, Catalan (Valencian), Italian, Breton, Dutch, Dutch (Belgium), Portuguese, Portuguese (Portugal), Portuguese (Brazil), Portuguese (Angola preAO), Portuguese (Moçambique preAO), Russian, Asturian, Belarusian, Chinese, Danish, Esperanto, Irish, Galician, Greek, Japanese, Khmer, Romanian, Slovak, Slovenian, Spanish, Spanish (voseo), Swedish, Tamil, Tagalog, Ukrainian, Testlanguage]
Running XML validation for pt/grammar.xml...
Running pattern rule tests for Portuguese (org.languagetool.language.Portuguese)...
Exception in thread "main" java.lang.RuntimeException: Could not activate rules
        at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:340)
        at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:299)
        at org.languagetool.MultiThreadedJLanguageTool.<init>(MultiThreadedJLanguageTool.java:94)
        at org.languagetool.MultiThreadedJLanguageTool.<init>(MultiThreadedJLanguageTool.java:84)
        at org.languagetool.MultiThreadedJLanguageTool.<init>(MultiThreadedJLanguageTool.java:67)
        at org.languagetool.MultiThreadedJLanguageTool.<init>(MultiThreadedJLanguageTool.java:51)
        at org.languagetool.rules.patterns.PatternRuleTest.createToolForTesting(PatternRuleTest.java:178)
        at org.languagetool.rules.patterns.PatternRuleTest.runTestForLanguage(PatternRuleTest.java:162)
        at org.languagetool.rules.patterns.PatternRuleTest.runGrammarRulesFromXmlTestIgnoringLanguages(PatternRuleTest.java:155)
        at org.languagetool.rules.patterns.PatternRuleTest.main(PatternRuleTest.java:766)
Caused by: java.io.IOException: Cannot load or parse input stream of '/org/languagetool/rules/pt/grammar.xml'
        at org.languagetool.rules.patterns.PatternRuleLoader.getRules(PatternRuleLoader.java:80)
        at org.languagetool.Language.getPatternRules(Language.java:646)
        at org.languagetool.JLanguageTool.activateDefaultPatternRules(JLanguageTool.java:668)
        at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:333)
        ... 9 more
Caused by: java.lang.RuntimeException: Could not create filter class using constructor public org.languagetool.rules.pt.AdvancedSynthesizerFilter()
        at org.languagetool.rules.patterns.RuleFilterCreator.getFilter(RuleFilterCreator.java:54)
        at org.languagetool.rules.patterns.XMLRuleHandler.setRuleFilter(XMLRuleHandler.java:668)
        at org.languagetool.rules.patterns.PatternRuleHandler.createRules(PatternRuleHandler.java:674)
        at org.languagetool.rules.patterns.PatternRuleHandler.createRules(PatternRuleHandler.java:701)
        at org.languagetool.rules.patterns.PatternRuleHandler.createRules(PatternRuleHandler.java:701)
        at org.languagetool.rules.patterns.PatternRuleHandler.createRules(PatternRuleHandler.java:701)
        at org.languagetool.rules.patterns.PatternRuleHandler.endElement(PatternRuleHandler.java:424)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endNamespaceScope(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.languagetool.rules.patterns.PatternRuleLoader.getRules(PatternRuleLoader.java:77)
        ... 12 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.languagetool.rules.patterns.RuleFilterCreator.getFilter(RuleFilterCreator.java:47)
        ... 34 more
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.nio.file.NoSuchFileException: \pt\portuguese_synth.dict
        at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4943)
        at org.languagetool.rules.spelling.morfologik.MorfologikSpeller.getDictionaryWithCaching(MorfologikSpeller.java:95)
        at org.languagetool.synthesis.BaseSynthesizer.getDictionary(BaseSynthesizer.java:115)
        at org.languagetool.synthesis.BaseSynthesizer.createStemmer(BaseSynthesizer.java:129)
        at org.languagetool.synthesis.BaseSynthesizer.<init>(BaseSynthesizer.java:66)
        at org.languagetool.synthesis.BaseSynthesizer.<init>(BaseSynthesizer.java:101)
        at org.languagetool.synthesis.pt.PortugueseSynthesizer.<init>(PortugueseSynthesizer.java:34)
        at org.languagetool.rules.pt.AdvancedSynthesizerFilter.<init>(AdvancedSynthesizerFilter.java:36)
        ... 39 more
Caused by: java.nio.file.NoSuchFileException: \pt\portuguese_synth.dict
        at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
        at java.nio.file.Files.newByteChannel(Unknown Source)
        at java.nio.file.Files.newByteChannel(Unknown Source)
        at java.nio.file.spi.FileSystemProvider.newInputStream(Unknown Source)
        at java.nio.file.Files.newInputStream(Unknown Source)
        at morfologik.stemming.Dictionary.read(Dictionary.java:63)
        at org.languagetool.rules.spelling.morfologik.MorfologikSpeller$1.load(MorfologikSpeller.java:55)
        at org.languagetool.rules.spelling.morfologik.MorfologikSpeller$1.load(MorfologikSpeller.java:48)
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3951)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4935)
        at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4941)
        ... 46 more
Running disambiguator rule tests...
Running disambiguation tests for Portuguese...
Exception in thread "main" java.lang.RuntimeException: Could not activate rules
        at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:340)
        at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:299)
        at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:359)
        at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:265)
        at org.languagetool.tagging.disambiguation.rules.DisambiguationRuleTest.testDisambiguationRulesFromXML(DisambiguationRuleTest.java:70)
        at org.languagetool.tagging.disambiguation.rules.DisambiguationRuleTest.main(DisambiguationRuleTest.java:238)
Caused by: java.io.IOException: Cannot load or parse input stream of '/org/languagetool/rules/pt/grammar.xml'
        at org.languagetool.rules.patterns.PatternRuleLoader.getRules(PatternRuleLoader.java:80)
        at org.languagetool.Language.getPatternRules(Language.java:646)
        at org.languagetool.JLanguageTool.activateDefaultPatternRules(JLanguageTool.java:668)
        at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:333)
        ... 5 more
Caused by: java.lang.RuntimeException: Could not create filter class using constructor public org.languagetool.rules.pt.AdvancedSynthesizerFilter()
        at org.languagetool.rules.patterns.RuleFilterCreator.getFilter(RuleFilterCreator.java:54)
        at org.languagetool.rules.patterns.XMLRuleHandler.setRuleFilter(XMLRuleHandler.java:668)
        at org.languagetool.rules.patterns.PatternRuleHandler.createRules(PatternRuleHandler.java:674)
        at org.languagetool.rules.patterns.PatternRuleHandler.createRules(PatternRuleHandler.java:701)
        at org.languagetool.rules.patterns.PatternRuleHandler.createRules(PatternRuleHandler.java:701)
        at org.languagetool.rules.patterns.PatternRuleHandler.createRules(PatternRuleHandler.java:701)
        at org.languagetool.rules.patterns.PatternRuleHandler.endElement(PatternRuleHandler.java:424)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endNamespaceScope(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.languagetool.rules.patterns.PatternRuleLoader.getRules(PatternRuleLoader.java:77)
        ... 8 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.languagetool.rules.patterns.RuleFilterCreator.getFilter(RuleFilterCreator.java:47)
        ... 30 more
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.nio.file.NoSuchFileException: \pt\portuguese_synth.dict
        at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4943)
        at org.languagetool.rules.spelling.morfologik.MorfologikSpeller.getDictionaryWithCaching(MorfologikSpeller.java:95)
        at org.languagetool.synthesis.BaseSynthesizer.getDictionary(BaseSynthesizer.java:115)
        at org.languagetool.synthesis.BaseSynthesizer.createStemmer(BaseSynthesizer.java:129)
        at org.languagetool.synthesis.BaseSynthesizer.<init>(BaseSynthesizer.java:66)
        at org.languagetool.synthesis.BaseSynthesizer.<init>(BaseSynthesizer.java:101)
        at org.languagetool.synthesis.pt.PortugueseSynthesizer.<init>(PortugueseSynthesizer.java:34)
        at org.languagetool.rules.pt.AdvancedSynthesizerFilter.<init>(AdvancedSynthesizerFilter.java:36)
        ... 35 more
Caused by: java.nio.file.NoSuchFileException: \pt\portuguese_synth.dict
        at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
        at java.nio.file.Files.newByteChannel(Unknown Source)
        at java.nio.file.Files.newByteChannel(Unknown Source)
        at java.nio.file.spi.FileSystemProvider.newInputStream(Unknown Source)
        at java.nio.file.Files.newInputStream(Unknown Source)
        at morfologik.stemming.Dictionary.read(Dictionary.java:63)
        at org.languagetool.rules.spelling.morfologik.MorfologikSpeller$1.load(MorfologikSpeller.java:55)
        at org.languagetool.rules.spelling.morfologik.MorfologikSpeller$1.load(MorfologikSpeller.java:48)
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3951)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4935)
        at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4941)
        ... 42 more
Running XML bitext pattern tests...
Bitext pattern tests successful.
Validating false-friends.xml...
Validation successfully finished.
jaumeortola commented 2 years ago

@marcoagpinto There is a missing element in the CPATH. Edit the file testrules.bat and add ;libs/portuguese-pos-dict.jar to SET CPATH. It will be fixed in the next snapshot.

marcoagpinto commented 2 years ago

@jaumeortola

I have downloaded the nightly.

A TESTRULES PT now gives a warning:

Testing rule 2700...
Testing rule 2800...
Skipped 0 rules for variant language to avoid checking rules more than once
2824 rules tested.
Tests finished!
Running disambiguator rule tests...
Running disambiguation tests for Portuguese...
*** WARNING: The Portuguese rule: JUNTO_A[1], token [2], contains "a|com" that is not marked as regular expression but probably is one.
100...
200...
300...
317 rules tested (241ms)

But I can't find any JUNTO_A rule in the grammar.xml.

jaumeortola commented 2 years ago

@marcoagpinto JUNTO_A is a disambiguation rule. It is fixed in a branch I am going to merge today.

marcoagpinto commented 2 years ago

@jaumeortola

I was improving an antipattern and found a typo in a tag: Se nos dias após a cirurgia ainda sentir interferências nos sono, converse com o seu médico sobre outras soluções possíveis.

interferências nos sono, "nos" is tagged as: SPS00::DA0MP0

It has "::" instead of ":".

jaumeortola commented 2 years ago

Fixed. You can write down these changes in added.txt/removed.txt. https://github.com/languagetool-org/languagetool/commit/577ac2c382e166e6005a51deca610fd44218672f

marcoagpinto commented 2 years ago

Write down? How? I don't understand.

jaumeortola commented 2 years ago

Add all the changes you want to the files added.txt/removed.txt. From time to time, I will move them to portuguese-pos-dict.

marcoagpinto commented 2 years ago

ahhh.. I now understand after seeing your commit.

p-goulart commented 6 months ago

No longer relevant (new tagger has been live for 1+ year).