我正在处理一个大文本文件。文件中有许多行,其中五行显示在下面。
/a/[/r/Antonym/,/c/af/afghanistan/,/c/af/pakistan/]
/a/[/r/UsedFor/,/c/en/book/,/c/en/learn/]
/a/[/r/Antonym/,/c/ar/???/,/c/ar/???/]
bad line
/a/[/r/IsA/,/c/en/island/,/c/en/land_mass/]
其中/a
表示断言,/r
表示关系,/c
表示概念,/en
或/af
表示语言。
我现在要做的是仅为/en
(英语)语言提取三元组。我希望获得并存储在另一个文件中的输出是:
UsedFor book learn
IsA island land_mass
使用Python有没有简单的方法呢?
答案 0 :(得分:1)
您必须解析此自定义格式。一种可能的解决方案可能如下所示:
s = """/a/[/r/Antonym/,/c/af/afghanistan/,/c/af/pakistan/]
/a/[/r/UsedFor/,/c/en/book/,/c/en/learn/]
/a/[/r/Antonym/,/c/ar/???/,/c/ar/???/]
bad line
/a/[/r/IsA/,/c/en/island/,/c/en/land_mass/]"""
for line in s.split("\n"):
if line.startswith("/a"):
a = line[4:-1]
r, c1, c2 = a.split(",")
if c1.split("/")[2] == "en" and c2.split("/")[2] == "en":
print(" ".join((r.split("/")[2], c1.split("/")[3], c2.split("/")[3])))
输出:
UsedFor book learn
IsA island land_mass