在Linux中,使用PostgreSQL在基于Java/Scalabase的应用程序中访问(英语)“字典”的最快、最简单的方法?
我有一个基于Scala的应用程序(因此可以访问标准Java内容),利用PostgreSQL数据库,运行在Linux上
我提到数据库和操作系统是因为,我知道Postgres有一些用于执行its text-search indexing的字典,我认为大多数Linux系统都会有一些基线字典,至少对于拼写检查这样的简单事情。然而,利用这些资源是否容易或切实可行则是另一回事
我不需要完整的单词定义,但我需要能够回答以下问题:
- 一个词属于哪个词类?(例如,单词
X
是名词吗?是动词吗?)李> - 一个词是复数吗?如果是,它的单数形式是什么?(反之亦然。)李>
该解决方案不需要非常快,但如果它至少可以用于服务组合使用缓存解决方案的web请求,那就太好了
我知道有很多选择——谷歌搜索“java dictionary”会发现一个负载,但根本不清楚这些项目中哪些仍然处于活动状态,哪些更有用(主观,我知道:p),或者哪些对于我的目的来说可能是过度的
另外,一个(a)使用我已经准备好的堆栈,或者(b)作为一个简单的sbt
依赖项的解决方案将是理想的
# 1 楼答案
如评论中所述,您可以在Linux系统上使用字典。我的
american-english
安装在/usr/share/dict/american-english
。这本词典包含近10万个单词,也许可以进行简单的拼写检查。如果需要其他语言或语言变体,可以通过软件包管理器安装使用
Scala
和这本字典进行简单的拼写检查可以通过测试给定单词在单词集中的存在性来完成dict
是另一个Linux实用程序,可用于查找词性和单词的复数。我将借用手册页上的描述:dict
命令可以在本地运行,也可以在服务器上运行。困难的部分是,你必须解析输出以获得你想要的信息,这可以在Scala或你选择的文本解析工具中完成。例如,dict run
给出了由输出分别以n
和v
开头的名词和动词的几个定义对于复数
dict goose
输出以下goose的复数形式,您还需要解析才能找到