gpt4 book ai didi

java - 如何判断一个字符串是随机生成的还是似是而非的英文单词?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:31 26 4
gpt4 key购买 nike

我有一个包含一些字符串的文本语料库。这些字符串中,有的是英文单词,有的是随机的,比如VmsVKmGMY6eQE4eMI,每个字符串的字符数没有限制。

有什么方法可以判断一个字符串是不是英文单词?我正在寻找某种可以完成这项工作的算法。这是在 Java 中,我宁愿不实现额外的字典。

最佳答案

我必须为一个源代码挖掘项目解决一个密切相关的问题,虽然这个包是用 Python 而不是 Java 编写的,但在这里似乎值得一提,以防它仍然有用。包裹是Nostril (对于“Nonsense String Evaluator”),它旨在确定在源代码挖掘过程中提取的字符串是否可能是类/函数/变量/等。标识符或随机乱码。 Nostril 不使用字典,但它包含一个相当大的 n-gram 频率表来支持它对文本字符串的概率评估。

例子:如下代码,

from nostril import nonsense
real_test = ['bunchofwords', 'getint', 'xywinlist', 'ioFlXFndrInfo',
'DMEcalPreshowerDigis', 'httpredaksikatakamiwordpresscom']
junk_test = ['faiwtlwexu', 'asfgtqwafazfyiur', 'zxcvbnmlkjhgfdsaqwerty']
for s in real_test + junk_test:
print('{}: {}'.format(s, 'nonsense' if nonsense(s) else 'real'))

将产生以下输出:

bunchofwords: real
getint: real
xywinlist: real
ioFlXFndrInfo: real
DMEcalPreshowerDigis: real
httpredaksikatakamiwordpresscom: real
faiwtlwexu: nonsense
asfgtqwafazfyiur: nonsense
zxcvbnmlkjhgfdsaqwerty: nonsense

项目在GitHub我欢迎贡献。如果你真的需要一个 Java 实现,也许我们可以让 Nostril 兼容 Python 2.7,你可以尝试使用 Jython从 Java 运行它。

关于java - 如何判断一个字符串是随机生成的还是似是而非的英文单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21715354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com