如何从藏语词形与POS对应数据中提取仅POS信息?
提取藏语词汇POS标注的解决方法
问题背景
你有如下藏语词汇与POS标注的文本:
སྩོལ་ VERB སྐབས་ NOUN ཆོས་ NOUN ཞུ་བ་ VERB ཚོས་ NOUN དེབ་ NOUN
需要提取出单独的POS信息,但原代码无法得到预期结果。
原代码问题分析
原代码中使用line.split(' ')[2]存在两个核心问题:
- 若每行仅用单个空格分隔词汇与POS,
split(' ')会得到长度为2的列表,取索引[2]会触发索引越界错误; - 若存在多个连续空格,
split(' ')会生成包含空字符串的列表,无法稳定获取POS位置。
可行解决方法
以下两种方法均可稳定提取每行最后的POS标注:
方法1:使用默认split()分割任意空白
默认split()会自动分割所有空白字符(空格、换行、制表符等),并忽略首尾空白,直接取最后一个元素即可:
with open("your_input_file.txt", "r", encoding="utf-8") as file: for line in file: cleaned_line = line.strip() if not cleaned_line: # 跳过空行 continue parts = cleaned_line.split() pos_tag = parts[-1] print(pos_tag)
方法2:从右侧单次分割
使用rsplit(' ', 1)从行的右侧仅分割一次,确保即使词汇中包含空格(本例中无此情况,但通用性更强),也能准确获取POS:
with open("your_input_file.txt", "r", encoding="utf-8") as file: for line in file: cleaned_line = line.strip() if not cleaned_line: continue _, pos_tag = cleaned_line.rsplit(' ', 1) print(pos_tag)
运行任意一种方法,都会输出预期的POS列表:
VERB NOUN NOUN VERB NOUN NOUN
内容的提问来源于stack exchange,提问作者lungsang
相关产品推荐
相关产品推荐

