如何检查一个英语单词在Julia中是否有意义



在Julia中,我如何检查一个英语单词是否是有意义的单词?假设我想知道";你好"是否有意义。在Python中,可以使用enchantnltk包(例如:[1]、[2](。朱莉娅也可以这样做吗?

我需要的是这样一个功能:

is_english("Hello")
>>>true
is_english("Hlo")
>>>false
# Because it doesn't have meaning! We don't have such a word in English terminology!
is_english("explicit")
>>>true
is_english("eeplicit")
>>>false

以下是我迄今为止尝试的内容:
我有一个数据集,其中包含常见的5char英语单词(链接到谷歌驱动器(。所以我决定把它扩充到我的问题中,以便更好地理解尽管这个数据集不够(因为它只包含频繁的5char有意义的单词,而不是任何长度的所有有意义的英语单词(,但它适合用来显示我想要的东西:

using CSV
using DataFrames
df = CSV.read("frequent_5_char_words.csv" , DataFrame , skipto=2)
df = [lowercase(item) for item in df[:,"0"]]
function is_english(word::String)::Bool
return lowercase(word) in df
end

然后当我尝试这些:

julia>is_english("Helo")
false
julia>is_english("Hello")
true

但我没有一个丰富的数据集!所以这还不够。所以我很好奇,在朱莉娅有没有像我之前提到的那样的包裹?

(没有足够的代表发表评论!(

您仍然可以通过PyCall在Julia中使用NLTK。或者,看起来你不需要NLP工具,只需要一个字典,你可以使用wiktionary来进行一些查找或构建数据集。

最近有一个新包,名为LanguageDetect.jsl。它不返回true/false,而是返回概率列表。你可以定义如下:

using LanguageDetect: detect
function is_english(text, threshold=0.8)
langs = detect(text)
for lang in langs
if lang.language == "en"
return lang.probability >= threshold
end
end
ret

最新更新