分类和标注词汇

来源:互联网 发布:java除法取整 编辑:程序博客网 时间:2024/04/18 15:45
#词性标注器python3text=nltk.word_tokenize("And now for")nltk.pos_tag(text)# [('And', 'CC'), ('now', 'RB'), ('for', 'IN')]text.similar()方法找出所有上下文词性相似的词语text=nltk.Text(word.lower() for word in nltk.corpus.brown.words())text.similar('man')#time day and one it way year woman state house men world life car people war church that place workstr2tuple()表示一个已经标注的标识符的标准字符串创建的一个元组a=nltk.tag.str2tuple("fly/NN")print(a)#('fly', 'NN')只要语料库包含已经标注的文本,NLTK的语料库借口都将有一个tagged_words()方法。

好吧旋转失败凑活着看

名词:出现在限定词和形容词之后,包括数字形容词即为数词
动词:用来描述事件和动作的词语(V,VN,VD)

#跟在often之后的词语b=brown.words(categories='learned')sorted(set(b for (a,b) in nltk.ibigrams(b) if a=='often'))使用POS标记来寻找三词短语def process(sentence):    for (w1,t1),(w2,t2),(w3,t3) in nltk.trigrams(sentence):#trigrams含义?        if(t1.startswith('V') and t2=='TO' and t3.startswith('V')):            print(w1,w2,w3)for a in brown.tagged_sents():    process(a)#...going to keelseemed to enjoylike to knowdeserve to liewant to seepretending to jokeused to trytrying to lookbegan to watchwant to goseemed to sink#...

使用python字典映射词以及属性

pos={}keys()单独链表的键values()值items()键-值对pos['sleep']=['N','V']#一个键存储多个值#默认字典,但需要提供参数指定类型pos=nltk.defaultdict(int)posOut[17]: defaultdict(int, {})#lambda表达式pos=nltk.defaultdict(lambda:'N')#默认值都是N#用UNK替换文本中的低频词汇,创建一个默认字典,映射每个词为他们的替换词,最频繁的n个词被映射回自身,其他的被映射为UNK(代码没错却和书上结果不一样?...)    import nltk    alice = nltk.corpus.gutenberg.words('carroll-alice.txt')    vocab = nltk.FreqDist(alice)    v1000 = list(vocab)[:1000]    mapping = nltk.defaultdict(lambda:'UNK')    for v in v1000:        mapping[v] = v    alice2 = [mapping[v] for v in alice]    print(alice2[:100])itemgetter(n)#指定排序键,返回一个函数,这个函数在一些其他序列上被调用以获得该序列的第n个元素。 from operator import itemgetterkey=word[-2:]#最后两个字母#颠倒顺序的词字典    import nltk    words=nltk.corpus.words.words('en')    anagrams=nltk.defaultdict(list)    for word in words:        key=''.join(sorted(word))#这行不太理解,不理解sorted在这里的作用???        anagrams[key].append(word)    print(anagrams['aeilnrt'])   #['entrail', 'latrine', 'ratline', 'reliant', 'retinal', 'trenail']  #相同的实现方法:anagrams=nltk.Index((''.join(sorted(w)),w) for w in words)print(anagrams['aeilnrt'])   d1.update(d2)#添加d2所有项目到d1
原创粉丝点击