'str' 对象在 NLTK 中不可调用
'str' object is not callable in NLTK
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
不过我可以打印 chunk.label()
我怀疑发生了以下情况:
在你的代码中的某处——虽然它没有包含在你的代码片段中——你将一个字符串值分配给一个名为 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
我认为这很可能发生在这里;至少我经常想到我想在变量中存储某种 "type",但我通常不会这样做,因为你在这里看到的那种麻烦。
避免此类错误的一种方法是使用 linter:编辑器在后台 运行 的一种工具,可以检查您的代码并发现危险的东西,就像这样。我强烈推荐你试一试!
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
不过我可以打印 chunk.label()
我怀疑发生了以下情况:
在你的代码中的某处——虽然它没有包含在你的代码片段中——你将一个字符串值分配给一个名为 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
我认为这很可能发生在这里;至少我经常想到我想在变量中存储某种 "type",但我通常不会这样做,因为你在这里看到的那种麻烦。
避免此类错误的一种方法是使用 linter:编辑器在后台 运行 的一种工具,可以检查您的代码并发现危险的东西,就像这样。我强烈推荐你试一试!