Était-ce utile?

La solution

Je viens d'utiliser le liwc anglais 2007 dictionnaire (j'ai payé pour la même) et a effectué une recherche simple maintenant. Toutes les autres réponses sont les bienvenues.

Je dois dire que je suis un peu surpris par l'impulsivité d'un couple de réponses ici. Depuis, quelqu'un a demandé pour le code. Voici ce que je l'ai fait:

''' Returns frequency of function words '''
def get_func_word_freq(words,funct_words):
    fdist = nltk.FreqDist([funct_word for funct_word in funct_words if funct_word in words]) 
    funct_freq = {}    
    for key,value in fdist.iteritems():
        funct_freq[key] = value
    return funct_freq

''' Read LIWC 2007 English dictionary and extract function words '''
def load_liwc_funct():
    funct_words = set()
    data_file = open(liwc_dict_file, 'rb')
    lines = data_file.readlines()
    for line in lines:
        row = line.rstrip().split("\t")
        if '1' in row:
            if row[0][-1:] == '*' :
                funct_words.add(row[0][:-1])
            else :
                funct_words.add(row[0])
    return list(funct_words)

Toute personne qui a fait un code en python vous dira que l'exécution d'un coup d'oeil vers le haut ou extraire des mots avec des étiquettes de point de vente spécifiques ne sont pas la science des fusées. Pour ajouter, tags (sur la question) de la PNL (traitement du langage naturel) et NLTK (langage naturel ToolKit) devrait être suffisant indication astucieux d'esprit.

De toute façon, je comprends et sentiments de respect des personnes qui répondent ici depuis la plus grande partie est libre, mais je pense que le moins qu'on puisse faire est de montrer un peu de respect aux affiches de question. Comme il est souligné à juste titre l'aide est reçue lorsque vous aidez les autres, de même le respect est reçu quand on les autres de respect.

Autres conseils

Vous ne savez pas quelle approche fonctionnera jusqu'à ce que vous essayez. Je recommande la première approche bien; Je l'ai utilisé avec succès sur des données très bruyant, où les « phrases » où les en-têtes de sujets électroniques (courtes textes, phrases non appropriées) et même la langue est inconnue (85% anglais, l'algorithme Cavnar & Trenkle se décomposent rapidement) . Le succès a été défini comme la récupération des performances accrues dans un moteur de recherche; si vous voulez juste compter les fréquences, le problème peut être plus facile.

Assurez-vous d'utiliser un tagueur POS qui prend en compte le contexte (la plupart). Inspecter la liste des mots et des fréquences que vous obtenez et peut-être éliminer certains mots que vous ne considérez pas les mots de fonction, ou même de filtrer les mots qui sont trop longs; qui permettra d'éliminer les faux positifs.

(non-responsabilité:.. J'utilisais tagger Stanford POS, pas NLTK, donc je YMMV utilisé l'un des modèles par défaut pour l'anglais, formé, je pense, sur le Penn Treebank)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top