Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将文本拆分为N克并获取其偏移量_Python_Nlp_N Gram - Fatal编程技术网

Python 如何将文本拆分为N克并获取其偏移量

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

我想把一个文本拆分成nGram,但也要得到它们在文本中的偏移量
我目前正在使用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)