2016-03-21 19 views
0

JSON dizesinden bir anahtar sözcük çıkarmaya çalışıyorum ve sözcüğün içeriğini al. Ben (örn Pai bir kelime sağlamak istiyoruzRegex: boşluklu aksanlı harfler olsun

Python

re.findall(regex, string) 

:

JSON

{"1" : "Na casa de meu Pai há muitos aposentos; se não fosse assim, eu lhes teria dito. Vou preparar-lhes lugar."} 

Şu anda, benim Python kodu: My dize benziyor) ve anahtar kelimeden önce ve sonra kelimeleri alın . Komut dizim, anahtar kelimenin tüm yinelemelerini sayacak ve içeriksel sözcüklerin bir listesini oluşturacaktır.

Sorunum: aksanlı harfleri whitespac, virgül, nokta vb. Ile nasıl alabilirim? En iyi yaklaşım nedir: İstediğiniz karakterleri listeleyebilir veya istenmeyenleri hariç tutabilirsiniz? Bir şey gibi:

import nltk 

text = 'Na casa de meu Pai há muitos aposentos; se não fosse assim, eu lhes teria dito. Vou preparar-lhes lugar.' 
tokens = nltk.word_tokenize(text) 

c = nltk.ConcordanceIndex(tokens, key=lambda s: s.lower()) 
result = [] 
for offset in c.offsets('Pai'): 
    result += tokens[offset - 2: offset] 
    result += tokens[offset + 1: offset + 3] 

print(result) 

Baskılar ['de', 'meu', 'há', 'muitos']:

([^\"]+)Pai([^\"$]+) 
+2

En iyi yaklaşım yerine bir JSON çözümleyici ve dize işlevlerini kullanmak olacaktır. – Jan

cevap

1

sonra bir metin, örnekte belirli bir kelime etrafında kelimeleri keşfetmek için yardımcı olur nltk.ConcordanceIndex kullanın json.load() veya json.loads() aracılığıyla JSON veri yükleme .