Revision: 8747
http://languagetool.svn.sourceforge.net/languagetool/?rev=8747&view=rev
Author: dominikoeo
Date: 2012-12-31 17:50:27 +0000 (Mon, 31 Dec 2012)
Log Message:
-----------
[fr] Switch to SRX sentence tokenizer in French.
Modified Paths:
--------------
trunk/JLanguageTool/CHANGES.txt
trunk/JLanguageTool/src/main/java/org/languagetool/language/French.java
trunk/JLanguageTool/src/main/resources/org/languagetool/resource/segment.srx
Modified: trunk/JLanguageTool/CHANGES.txt
===================================================================
--- trunk/JLanguageTool/CHANGES.txt 2012-12-31 15:02:33 UTC (rev 8746)
+++ trunk/JLanguageTool/CHANGES.txt 2012-12-31 17:50:27 UTC (rev 8747)
@@ -7,6 +7,9 @@
-Added about 9000 nameplaces to the dictionary. Source: enciclopedia.cat.
Some processing
done for generating (partial) gender and number data.
+ -French:
+ -SRX sentence tokenization
+
-bugfix: suggestions for compounds parts were missing sometimes
Modified:
trunk/JLanguageTool/src/main/java/org/languagetool/language/French.java
===================================================================
--- trunk/JLanguageTool/src/main/java/org/languagetool/language/French.java
2012-12-31 15:02:33 UTC (rev 8746)
+++ trunk/JLanguageTool/src/main/java/org/languagetool/language/French.java
2012-12-31 17:50:27 UTC (rev 8747)
@@ -1,6 +1,6 @@
-/* LanguageTool, a natural language style checker
+/* LanguageTool, a natural language style checker
* Copyright (C) 2007 Daniel Naber (http://www.danielnaber.de)
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
@@ -32,6 +32,8 @@
import org.languagetool.rules.fr.QuestionWhitespaceRule;
import org.languagetool.rules.patterns.Unifier;
import org.languagetool.rules.spelling.hunspell.HunspellNoSuggestionRule;
+import org.languagetool.tokenizers.SRXSentenceTokenizer;
+import org.languagetool.tokenizers.SentenceTokenizer;
import org.languagetool.tagging.Tagger;
import org.languagetool.tagging.disambiguation.Disambiguator;
import org.languagetool.tagging.disambiguation.fr.FrenchHybridDisambiguator;
@@ -39,17 +41,26 @@
public class French extends Language {
+ private SentenceTokenizer sentenceTokenizer;
private Tagger tagger;
private Disambiguator disambiguator;
private Unifier unifier;
private Unifier disambiguationUnifier;
-
+
@Override
public Locale getLocale() {
return new Locale(getShortName());
}
@Override
+ public final SentenceTokenizer getSentenceTokenizer() {
+ if (sentenceTokenizer == null) {
+ sentenceTokenizer = new SRXSentenceTokenizer(this);
+ }
+ return sentenceTokenizer;
+ }
+
+ @Override
public String getName() {
return "French";
}
@@ -58,7 +69,7 @@
public String getShortName() {
return "fr";
}
-
+
@Override
public String[] getCountryVariants() {
return new String[]{"FR", "", "BE", "CH", "CA", "LU", "MC", "CM",
@@ -76,7 +87,7 @@
/*"»", French dialog can contain multiple sentences.
*/
/*"’" used in "d’arm" and many other words */ };
}
-
+
@Override
public Tagger getTagger() {
if (tagger == null) {
@@ -92,7 +103,7 @@
}
return disambiguator;
}
-
+
@Override
public Unifier getUnifier() {
if (unifier == null) {
Modified:
trunk/JLanguageTool/src/main/resources/org/languagetool/resource/segment.srx
===================================================================
---
trunk/JLanguageTool/src/main/resources/org/languagetool/resource/segment.srx
2012-12-31 15:02:33 UTC (rev 8746)
+++
trunk/JLanguageTool/src/main/resources/org/languagetool/resource/segment.srx
2012-12-31 17:50:27 UTC (rev 8747)
@@ -4704,6 +4704,30 @@
<afterbreak>\p{Lu}\p{Ll}</afterbreak>
</rule>
</languagerule>
+<languagerule languagerulename="French">
+<!-- French abbreviations -->
+<rule break="no">
+<beforebreak>\b(art|app|cf|chap|env|fém|fig|masc|p|sing|suiv|suppl|tél)\.\s</beforebreak>
+<afterbreak>\p{Ll}</afterbreak>
+</rule>
+<rule break="no">
+<beforebreak>\b(ave?|boul|Mr?|MM?)\.\s</beforebreak>
+<afterbreak></afterbreak>
+</rule>
+<!-- Break rules -->
+<rule break="yes">
+<beforebreak>[\.!?…][\u0002|'|"|«|\)|\]|\}]?\s+</beforebreak>
+<afterbreak></afterbreak>
+</rule>
+<rule break="yes">
+<beforebreak>[\.!?…]['"\p{Pe}\u00BB\u201D]?</beforebreak>
+<afterbreak>\p{Lu}[^\p{Lu}]</afterbreak>
+</rule>
+<rule break="yes">
+<beforebreak>\s\p{L}[\.!?…]\s</beforebreak>
+<afterbreak>\p{Lu}\p{Ll}</afterbreak>
+</rule>
+</languagerule>
<languagerule languagerulename="Ukrainian">
<rule break="no">
<beforebreak>\b\d+\.\s</beforebreak>
@@ -5097,6 +5121,7 @@
<languagemap languagepattern="(DE|de).*"
languagerulename="German"></languagemap>
<languagemap languagepattern="(DA|da).*"
languagerulename="Danish"></languagemap>
<languagemap languagepattern="(EO|eo).*"
languagerulename="Esperanto"></languagemap>
+<languagemap languagepattern="(FR|fr).*"
languagerulename="French"></languagemap>
<languagemap languagepattern="(UK|uk).*"
languagerulename="Ukrainian"></languagemap>
<languagemap languagepattern="(BE|be).*"
languagerulename="Belarusian"></languagemap>
<languagemap languagepattern="(GL|gl).*"
languagerulename="Galician"></languagemap>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits