我正在处理一个 20 GB 的大 ttl 文件,我尝试使用 rdflib 读取,但出现错误
killed
我正在尝试使用 grep 命令从此文件创建一个较小的文件。
grep "wordnet_" yagoTransitiveType.ttl >wordnet_yagoTransitiveType.ttl
问题是该文件无法读取 yago: 等初始前缀,因此 rdflib 无法解析 ttl 文件。
import rdflib
g = rdflib.Graph()
g.parse('yagoTransitiveType.ttl', format='ttl')
如何通过在运行 grep 命令后添加 10 行或任何其他方式来解决该问题?
据我了解,您想保留两种类型的数据之一:
rdf:type
rdf:type
和 wordnet_
的数据(按顺序)效率较低,这可能看起来像:
{
grep -v rdf:type yagoTransitiveType.ttl
grep -Ee 'rdf:type.*wordnet' yagoTransitiveType.ttl
} >filtered.ttl
...或者,更有效(仅读取输入文件一次):
awk '
! /rdf:type/ { print; next }
/rdf:type/ && /wordnet_/ { print }
' yagoTransitiveType.ttl >filtered.ttl