Python 如何将文本拆分为N克并获取其偏移量
我想把一个文本拆分成nGram,但也要得到它们在文本中的偏移量Python 如何将文本拆分为N克并获取其偏移量,python,nlp,n-gram,Python,Nlp,N Gram,我想把一个文本拆分成nGram,但也要得到它们在文本中的偏移量我目前正在使用Python中的NLTK库,但我没有找到任何本机方法来获取N-gram的偏移量。 我确实找到了,但我想知道是否有任何库可以提供这种功能而不必实现它。我的问题是,在我想要拆分的文本中,同一个N-gram出现了多次 示例用法为: ngrams_with_offset("I like apples and I like oranges", 2) >>> [("I", "like", offse
我目前正在使用Python中的NLTK库,但我没有找到任何本机方法来获取N-gram的偏移量。
我确实找到了,但我想知道是否有任何库可以提供这种功能而不必实现它。我的问题是,在我想要拆分的文本中,同一个N-gram出现了多次 示例用法为:
ngrams_with_offset("I like apples and I like oranges", 2)
>>> [("I", "like", offset=0),
("like", "apples", offset=2),
.......
("I", "like", offset=18),
..... ]
我没有找到任何本机方法来实现这一点,因此我使用NLTK中的align_tokens()函数实现了我自己的方法以适合我的用例。
它类似于这样:
tokenized_text = [word for word in word_tokenize(text) if word.lower() not in stopwords]
alignment = align_tokens(tokenized_text, text)
tokenized_with_offset = [(tokenized_text[i], alignment[i]) for i in range(len(alignment))]
ngrams(tokenized_with_offset, n)