生成一个随机字符串(无空格),能否鉴别出这个字符串中是否有自然语言中的单词。比如“ervmothersdclovecsasd”,这个字符串中就存在“mother”和“love”这两个单词。
于是我想到了对输入的词进行划分。这时就要用到了外部字典文件,我把常用的单词导入到txt文件中(不太清楚NTLK是否有类似的功能,寒假再研究一下,这里先把我想要做的实现一下)如图,这样,对每个连续的字符串能够进行自然语言的划分。这里用到的是正向最大匹配算法。
字典文件(最好是一个牛津词典):
需要词典文件下载链接请给我留言。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
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) |
截图显示
求词典文件,谢谢啦!!!!!!!
词典文件可以自己用txt建一个,可以用搜索引擎找找英文词典txt啥的
求词典文件,谢谢啦
词典文件可以自己用txt建一个,可以用搜索引擎找找英文词典txt啥的