【发布时间】:2021-09-09 16:00:55
【问题描述】:
我为一些歌词加载了 UCREL 语义分析系统 (USAS)。结果示例如下:
因为 Z5/A2.2 那Z8 是A3 好的A5.1 做 A1.1.1 不是Z6 停止 T2- 我 Z8MF 右Z4
每个单词都有一个语义标签。所有这些标签都在http://ucrel.lancs.ac.uk/usas/semtags.txt
我需要计算每个标签的出现次数。所以,我尝试使用 Pandas 进行编码。这没什么大不了的。问题是我需要计算标签直到点(。)之后的第二个数字。例如,“A1.1”、“A1.1.1”或“A1.1.2”必须算作A1.1
我运行的初始代码如下,但它只是计算所有出现的标签,不具备我上面解释的条件。
import re
import pandas as pd
import pandas.io.common
from pprint import pprint
import glob
files = glob.glob("/[folder name]/**/*.txt", recursive = True)
files = list(filter(lambda file: os.stat(file).st_size > 0, files))
for file in files:
data = pd.read_csv(file, engine='python', encoding='utf-8', error_bad_lines=False, header=None, usecols=[1], sep=' ')
data[1].value_counts().reset_index().to_csv(str(file) +'_totals.txt')
请问如何添加我需要的条件?
【问题讨论】: