在 LanguageTool 中,如何创建字典并使用它进行拼写检查?

2024-05-01

如何使用语言工具创建用于拼写检查的词典?我不是 Java 程序员,这是我第一次看到 LT。


您好,这是我使用语言工具创建拼写检查词典的经验!希望你喜欢它。

Part 1: 如何创建字典

你需要:

• 包含字典的.txt 文件

• 一个.info 文件,指定如何设置LT 输出文件的信息(它已存在于LT 目录中)。

• LanguageTool 独立版本

Java 8

在本节结束时,您将获得:

• .dict 文件,即包含 LT 可读格式的词典的文件

  1. 安装 LT 的最新版本:https://languagetool.org/download/snapshots/?C=M;O=D https://languagetool.org/download/snapshots/?C=M;O=D
  2. 确保您的 .txt 具有正确的格式 (a) 和编码 (b): A。 1字标准线 b. UTF8编码
  3. 在命令行中写入: A。 java -cp languagetool.jar org.languagetool.tools.SpellDictionaryBuilder fr_FR -i字典文件的路径 -info .info 文件的路径 -o 输出文件的路径

where:

我。 fr_FR是与字典的语言相关的代码

二. –i 这是输入文件的参数(你的.txt)

三. –info 是与字典相关的.info文件的参数。您可以按照以下说明创建它(http://wiki.languagetool.org/hunspell-support http://wiki.languagetool.org/hunspell-support- “配置词典”部分)或使用 \org\languagetool\resource\yourlanguage 中已有的 .info(如果存在)

四. -o 该参数用于指定您希望保存 .dict 输出文件的位置


Part 2: 如何在 LT 上集成词典进行拼写检查

你需要:

JDK 1.8(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

• Maven(https://maven.apache.org/download.cgi https://maven.apache.org/download.cgi)

• Java IDE(JetBrains、Eclipse 等)

• .info 文件 + .dict 文件(参见第 1 部分)

• GitHub LanguageTool 项目(https://github.com/languagetool-org/languagetool https://github.com/languagetool-org/languagetool)

  1. 设置 JDK 和 Maven bin 路径(更多信息:https://maven.apache.org/install.html https://maven.apache.org/install.html)
  2. 将第 1 部分创建的 .info 和 .dict 文件复制到 \languagetool-master\languagetool-language-modules\YourLanguage\src\main\resources\org\languagetool\resource\YourLanguage\hunspell
  3. 使用 IDE 打开名为字典语言的 java 文件(例如 French.java):

A。将 YourLanguage.java 中的 HunspellNoSuggestionRule 更改为 MorfologikYourLanguageSpellerRule

 @Override
  public List<Rule> getRelevantRules(ResourceBundle messages) throws IOException {
    return Arrays.asList(
new CommaWhitespaceRule(messages),
new DoublePunctuationRule(messages),
new GenericUnpairedBracketsRule(messages,
Arrays.asList("[", "(", "{" /*"«", "‘"*/),
Arrays.asList("]", ")", "}"
/*"»", French dialog can contain multiple sentences. */
/*"’" used in "d’arm" and many other words */)),
new MorfologikYourLanguageSpellerRule(messages, this),
new UppercaseSentenceStartRule(messages, this),
new MultipleWhitespaceRule(messages, this),
new SentenceWhitespaceRule(messages),
// specific to French:
new CompoundRule(messages),
new QuestionWhitespaceRule(messages)
);
}

b.在 \languagetool-master\languagetool-language-modules\YourLanguage\src\main\java\org\languagetool\rules\YourLanguage 中创建新的 MorfologikYourLanguageSpellerRule.java :

/* LanguageTool, a natural language style checker
 * Copyright (C) 2012 Marcin Miłkowski (http://www.languagetool.org)
 *
 * 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
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
 * USA
 */

package org.languagetool.rules.fr;

import java.io.IOException;
import java.util.ResourceBundle;

import org.languagetool.Language;
import org.languagetool.rules.spelling.morfologik.MorfologikSpellerRule;

public final class MorfologikYourLanguageSpellerRule extends MorfologikSpellerRule {

    public static final String RULE_ID = "MORFOLOGIK_RULE_CODEOFYOURLANGUAGE"; /* for ex. Fr_FR for French */

    private static final String RESOURCE_FILENAME = "PATH TO YOUR .DICT FILE";

    public MorfologikFrenchSpellerRule(ResourceBundle messages,
                                      Language language) throws IOException {
    super(messages, language);
  }

    @Override
    public String getFileName() {
        return RESOURCE_FILENAME;
    }

    @Override
    public String getId() {
        return RULE_ID;
    }
}

C。使用命令行转到 \languagetool-master\ 并写入: Mvn package

d.在 \languagetool-master\languagetool-standalone\target\LanguageTool-3.4-SNAPSHOT\LanguageTool-3.4-SNAPSHOT 中查看结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 LanguageTool 中,如何创建字典并使用它进行拼写检查? 的相关文章

随机推荐

  • Java集合:将子集合传递为父集合

    假设我有一个接口和一些类 public interface IPanel
  • str.find 怎么这么快?

    我之前遇到过一个问题 我在迭代字符串并使用切片时寻找子字符串 原来这是一个really关于性能的坏主意 str find速度要快得多 但我不明白为什么 import random import string import timeit Ge
  • hg Convert --authors errorUsers <-- 文件的格式是什么?

    Related here https stackoverflow com questions 732819 can i change the username on a mercurial changeset 757604 757604 指
  • 在 JS 中查找对象上特定值的键

    我有一个使用 lodash 生成的对象 zipObject 功能 所以我有 2 个数组 一个是位置 一个是数字 var locs Aberdeen 304 Aberystwith 109 Belfast 219 Birmingham 24
  • 如何使用 CSS 创建菱形内的标题?

    我想创建一种风格处理 类似于 这样的事情如何运作 使用 CSS 变换 您可以使用两个伪元素和 CSS 旋转变换来创建菱形形状 如下面的代码片段所示 这将使文本不受变换的影响 因此定位它会相对容易 The rotateZ 45deg 产生等边
  • r-base 和 r-推荐包之间的区别

    谁能告诉我基本包和推荐包之间有什么区别 如果有提到基本包和推荐包的链接 请提供链接 差异实际上来自 R Core 和 R 代码的组织方式 例如在上游 SVN 存储库中 In src library 您拥有所有 基本 包 base 编译器 数
  • 如何构建具有动态元素数量的 JSON?

    我需要构造一个看起来像这样的 JSON 对象 见下文 棘手的部分之一是 accountInfo 是动态的 因为会有 0 到多个键值对 zipCode 123 name bob partner from someCompany account
  • 如何在 HtmlUnit (java) 中禁用或指定重试次数?

    我希望连接重置后不会再次执行 HtmlUnit 中的 Web 请求 以下异常消息显示正在重试连接 INFO I O exception java net SocketException caught when connecting to t
  • 自定义用户代理字符串或标头,无需修改 cordova 库

    我有一个与 ASP NET MVC Web 应用程序交互的 Android Phonegap Cordova 应用程序 我正在尝试检测服务器端是否从浏览器或我的 Phonegap Cordova 应用程序加载网页 我考虑过以下几种方法 更改
  • 谷歌文档文本光标

    我需要创建一个类似于谷歌文档的应用程序 我发现 google 文档不使用任何文本区域 而是使用常规 div 来创建页面 但我不知道他们是如何获得文本光标的 是图像闪烁吗 因为当我尝试使用 Chrome 开发者工具查看网页代码时 我没有看到任
  • 可选择的圆形图像视图,如 Google+

    如何创建一个可选择的循环ImageView就像当前用于个人资料图片的 Google 应用程序一样 这就是我所指的 上图未选中 下图已选中 我尝试一比一复制个人资料图片 到目前为止我的工作 loadedImage is the Bitmap显
  • PHP 删除 JavaScript

    我正在尝试从 HTML 中删除 JavaScript 我无法让正则表达式与 PHP 一起使用 它给了我一个空数组 为什么
  • 如何获取 Jupyter Notebook 的“markdown”单元格中的制表符空间

    我正在编写描述性 ipynb 文件 需要在带有空格的 markdown 中给出输出 但无法添加制表符空间来打印结构化数据 键入 nbsp 以添加一个空格 输入 ensp 添加 2 个空格 输入 emsp 添加 4 个空格 使用不间断空格 n
  • initdb.bin:无效的区域设置;检查 LANG 和 LC_* 环境变量

    当我尝试安装时比特纳米奥多 9在我的 ubuntu 系统中通过终端 我收到以下错误消息 如何解决这个问题 initdb bin invalid locale settings check LANG and LC environment va
  • 如果子节点为空,则删除父节点

    源 XML
  • Hibernate 在运行时更改获取模式

    我有两个使用一对多关系关联在一起的表 雇员 gt 部门 通过雇员表中的department id建立关系 我使用 hibernate 我的 hibernate 映射文件是
  • Rails meta_search gem:按关联模型的计数排序

    我正在使用 meta search 对表中的列进行排序 我的表列之一是特定模型的关联记录的计数 基本上是这样的 class Shop lt ActiveRecord Base has many inventory records def c
  • GWT 将表单参数发送到 servlet

    我正在尝试捕获 servlet 中接下来的两个突出显示的字段 我可以在其中获取上传的文件 源代码与中所示的完全相同GWT FormSubmit 类 Javadoc http google web toolkit googlecode com
  • 如何通过 JavaScript 访问屏幕显示的 DPI 设置? [复制]

    这个问题在这里已经有答案了 有没有办法在 Javascript 函数中访问屏幕显示的 DPI 设置 我试图在页面上放置一个 HTML 面板 当用户的 DPI 设置为大 120 时 它会丢失该位置 我需要知道 DPI 是多少 以便我可以相应地
  • 在 LanguageTool 中,如何创建字典并使用它进行拼写检查?

    如何使用语言工具创建用于拼写检查的词典 我不是 Java 程序员 这是我第一次看到 LT 您好 这是我使用语言工具创建拼写检查词典的经验 希望你喜欢它 Part 1 如何创建字典 你需要 包含字典的 txt 文件 一个 info 文件 指定