python中一个单词字符串的字母n元语法的程序

时间:2019-04-26 15:05:28

标签: python string split

我是编程新手。我想用python编写一个程序,该程序在一个单词字符串(如“ python”)上进行迭代,并为我提供n个字母的语法。从n1到n6。我已经尝试了很多,但是没有用。 这里有一些例子:

s = "python"
for length in range(0, 13):
    for start in range(27):
        print(s[0:1:2])

或:

s = "python"
for index, value in enumerate (s):
    print(value)
    ausgabe = 0
    for 
    print (value + 1)

如果我可以不导入任何库就可以做到这一点。 但是我已经尝试过NLTK,但这也没有帮助。 我在该博客中阅读了有关n-gram的所有内容,但主要是关于分隔单词,我无法调整代码。 谢谢。

2 个答案:

答案 0 :(得分:0)

您的问题不是很清楚,但是我认为这就是您要寻找的问题

s = "python"    
for nlen in range(1,7):
    for ii in range(len(s)-nlen+1):
        print(s[ii:(ii+nlen)])

答案 1 :(得分:0)

def create_ngrams(word, n):

    # Break word into tokens
    tokens = [token for token in word]

    # generate ngram using zip
    ngrams = zip(*[tokens[i:] for i in range(n)])

    # concat with empty space & return
    return [''.join(ngram) for ngram in ngrams]

示例:create_ngrams('python', 2)

tokens = ['p', 'y', 't', 'h', 'o', 'n']

ngrams = zip(*[tokens[0:], tokens[1:]])
       = zip(['p','y','t','h','o','n'], ['y','t','h','o','n'])
       = ('p','y'),('y','t'),('t','h'),('h','o'),('o','n')

return ['py', 'yt', 'th', 'ho', 'on']