如何在数据框中句子标记化
How to sentence tokenize within a dataframe
我的数据框中的一列包含如下文本:
'This is very good. No it is very bad. Actually it is alright'
我想对本专栏中的文本进行句子标记化,本质上是创建一个嵌套的句子列表。
我试过了
def tokenizeAndList(text):
raw_text = text
nlp = English()
nlp.add_pipe(nlp.create_pipe('sentencizer')) # updated
doc = nlp(raw_text)
sentences = [sent.string.strip() for sent in doc.sents]
return(sentences)
out=myText['findings'].map(tokenizeAndList)
这给了我错误:
TypeError: object of type 'NAType' has no len()
如何创建嵌套列表?
发生这种情况是因为您在 findings
列中有一些不是字符串类型的值。
在从中创建 Spacy 文档之前,您应该检查 text
是否属于 str
类型,否则 return 值原样:
nlp = English()
nlp.add_pipe(nlp.create_pipe('sentencizer'))
def tokenizeAndList(text):
if isinstance(text, str):
doc = nlp(text)
return [sent.string.strip() for sent in doc.sents]
else:
return text
我的数据框中的一列包含如下文本:
'This is very good. No it is very bad. Actually it is alright'
我想对本专栏中的文本进行句子标记化,本质上是创建一个嵌套的句子列表。
我试过了
def tokenizeAndList(text):
raw_text = text
nlp = English()
nlp.add_pipe(nlp.create_pipe('sentencizer')) # updated
doc = nlp(raw_text)
sentences = [sent.string.strip() for sent in doc.sents]
return(sentences)
out=myText['findings'].map(tokenizeAndList)
这给了我错误:
TypeError: object of type 'NAType' has no len()
如何创建嵌套列表?
发生这种情况是因为您在 findings
列中有一些不是字符串类型的值。
在从中创建 Spacy 文档之前,您应该检查 text
是否属于 str
类型,否则 return 值原样:
nlp = English()
nlp.add_pipe(nlp.create_pipe('sentencizer'))
def tokenizeAndList(text):
if isinstance(text, str):
doc = nlp(text)
return [sent.string.strip() for sent in doc.sents]
else:
return text