生成一个随机字符串(无空格),能否鉴别出这个字符串中是否有自然语言中的单词。比如“ervmothersdclovecsasd”,这个字符串中就存在“mother”和“love”这两个单词。
于是我想到了对输入的词进行划分。这时就要用到了外部字典文件,我把常用的单词导入到txt文件中(不太清楚NTLK是否有类似的功能,寒假再研究一下,这里先把我想要做的实现一下)如图,这样,对每个连续的字符串能够进行自然语言的划分。这里用到的是正向最大匹配算法。
字典文件(最好是一个牛津词典):
需要词典文件下载链接请给我留言。
Python
note1 = input("Enter your input: ")
wordlist = []
get_list = []
f = open('C:\\Users\\dell\\desktop\\big.txt', 'r')
for line in f:
nlen = len(line)-1
wordlist.append(line[:nlen])
f.close()
def divide_str(note, wordlist):
i = 100
head = 0
flag = 0
while head <= len(note) - 1:
if head >= (len(note)-i):
i = len(note)-head
for p in range(i):
rear = head + i - p
flag = 0
for each in wordlist:
if note[head:rear] == each:
get_list.append(each)
# print(each)
head = head + len(each)
flag = 1
break
if flag == 1:
break
if flag == 0:
head = head + 1
divide_str(note1, wordlist)
print(get_list)
截图显示