我是编程新手。我想用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的所有内容,但主要是关于分隔单词,我无法调整代码。 谢谢。
答案 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']