使用NLTK找到trigram

时间:2012-06-22 06:41:29

标签: python nlp nltk n-gram

我对NLTk和python不太熟悉,我必须在程序中执行以下任务:

  1. 标记并小写输入 text1
  2. 标记输入 text2
  3. 在输入 text1
  4. 中找到所有三元组

    任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

text1text2是nltk示例的一部分吗?然后看看它们,你会发现令牌化并不像你想象的那么多: - )

对于小写,请查看任何介绍性的python教程。对于三卦,请查看nltk书。

答案 1 :(得分:0)

如果您不想使用nltk ngram:

    """import nltk
    from nltk import word_tokenize

    text1 = "I really like python"
    text2 = " Python is a snake"
    token=nltk.word_tokenize(text1)
    token=nltk.word_tokenize(text2)
    low_text1=nltk.word_tokenize(text1.lower())
    N = 3
    grams = [low_text1[i:i+N] for i in xrange(len(low_text1)-N+1)]"""

答案 2 :(得分:-1)

如果你没有这方面的例子 即将找到你应该首先标记它的所有三元组

>>> import nltk
>>> from nltk import word_tokenize
>>> from nltk.util import ngrams
>>> text1 = "Hi How are you? i am fine and you"
>>> token=nltk.word_tokenize(text1)    #tokenize your text 
>>> tttt=nltk.word_tokenize(text.lower())  #tokenize your text and make it lowercase in onestep
>>> tttt
['hi', 'how', 'are', 'you', '?', 'i', 'am', 'fine', 'and', 'you']

>>> trigrams=ngrams(token,3)          # find all the trigram in text1
>>> trigrams
[('Hi', 'How', 'are'), ('How', 'are', 'you'), ('are', 'you', '?'), ('you', '?', 'i'), ('?', 'i', 'am'), ('i', 'am', 'fine'), ('am', 'fine', 'and'), ('fine', 'and', 'you')]

关于使你的text2只需要应用标记化步骤