0

我正在尝试用 spacy 进行标记化。我是 python 新手,我想知道如何对 csv 文件进行标记化。

T 在 Jupyter notebook 中打开了文件:

    import csv
    import wheel
    
    with open('/Users/Desktop/Python Path copia/samsungs10.csv') as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=';')
        for riga in csv_reader:
            for campo in riga:
                print(campo, end=" ")
            print("") #fine riga

    doc = nlp ('csv_file')

并且输出正确地是 csv 数据集。

试图标记我有这个问题:

#python3 -m spacy download en_core_web_sm

    import spacy
    import en_core_web_sm
    
    for token in doc:
        print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,
                token.shape_, token.is_alpha, token.is_stop)

输出是:

csv_file csv_file ADP IN ROOT xxx_xxxx False False.

为什么?

4

1 回答 1

1

nlp在一串文本上调用对象将返回一个已处理的文档,您需要更改

doc = nlp ('csv_file')

到您的 csv 阅读器的文本内容,例如

doc = nlp(csv_contents)

编辑:在您的示例中,您有一组来自 csv 文件的行。您仍然可以使用 nlp 逐行处理字符串。这是一种方法:

import csv
import spacy
nlp = spacy.load("en_core_web_lg")

doc = []
with open('file.csv') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=';')
    for riga in csv_reader:
        for campo in riga:
            print(campo)
            doc.append(nlp(campo))

for item in doc:
    for token in item:
        print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,
              token.shape_, token.is_alpha, token.is_stop)
于 2020-08-06T17:39:10.390 回答