2017-05-29 113 views
0
import re 
import nltk 
import pandas as pd 
from nltk.chunk import RegexpParser 
from textblob import TextBlob 
data = open('data.txt', 'r') 
data = data.read() 

# region Fetch Account Type 
chunkData = r"""DataChunk: {(<NNP><NNP>+<CD>+)} 
    }<JJ|IN|DT|TO>+{""" 



lines = [line for line in open('data.txt')] 
lstLines=data.split('|') 
dataLines=[] 
for lines in lstLines: 
    dataLines=lines.split("\n") 

for line in dataLines: 
    if 'Data' in line: 
     DataTags = TextBlob(line).tags 
     Datachunker = RegexpParser(chunkData) 
     Datachunked = Datachunker.parse(DataTags) 

     for chunk in Datachunked: 

       if type(chunk) == nltk.tree.Tree and chunk.label() == "DataChunk": 
        DatachunkedLst = chunk.leaves() 
        Datachunked = [leaf[0] for leaf in DatachunkedLst if leaf[1] == 'CD'] 
        Data = '/'.join(Datachunked) 

Error:if type(chunk) == nltk.tree.Tree and chunk.label() == "DataChunk": TypeError: 'str' object is not callable「海峽」對象不在NLTK調用

但是我能夠打印chunk.label()

+0

你好維奈,請考慮寫你想達到的目標。否則,我們只能猜測。 –

+0

請提供一些數據,你是從的data.txt文件 –

+0

讀你有沒有通過任何機會,一個字符串值賦給一個名爲'type'變量?如'type =「無概念」'? – lenz

回答

0

我懷疑下面發生的事情:

某處在你的代碼 - 它不包括在您的代碼段 - 儘管 - 您將字符串值分配給名爲type的變量,例如:

type = "context-free" 

這給出了你的錯誤信息:

>>> type = "context-free" 
>>> type(object()) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'str' object is not callable 

我認爲這很有可能在這裏發生;至少我經常想到我想在某個變量中存儲某種「類型」,但由於您在這裏看到的那種麻煩,我通常不會這樣做。爲了避免這樣的錯誤

一種方法是使用棉絨:即在後臺通過您的編輯器中運行的工具,檢查你的代碼和點狀出血危險的東西,就是這樣的。我強烈建議你嘗試一個!

+0

但塊是不串的人,之前檢查是否conditon –

+0

我從來沒有說過'chunk'是一個字符串(或「串的人」,不管這是)。我正在談論內置函數'type',它可以被重寫。 – lenz

相關問題