質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

445閲覧

ValueError: exactly one of source, location, file or data must be given

nkt_japan

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/25 12:13

前提・実現したいこと

python初心者です。
初期に記載されていたサンプルコードを実装したところ以下のようなエラーがでてしまいました。
対処法がわからないです。どなたか教えてい頂きたいです。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "ch04_00.py", line 35, in <module> for (_, p, o) in read_ttl(in_file): File "ch04_00.py", line 17, in read_ttl for triple in parse_lines(lines): File "ch04_00.py", line 23, in parse_lines g.parse(deta='\n'.join(lines), format='n3') File "C:\Users\tnaka\anaconda3\lib\site-packages\rdflib\graph.py", line 1062, in parse source = create_input_source( File "C:\Users\tnaka\anaconda3\lib\site-packages\rdflib\parser.py", line 156, in create_input_source raise ValueError( ValueError: exactly one of source, location, file or data must be given

該当のソースコード

import bz2 import sys import MeCab from rdflib import Graph tagger = MeCab.Tagger('') tagger.parse('') #mecab-python3のこのになっhttps://github.com/SamuraiT/mecab-python3/issues/3 def read_ttl(f): "" "タートル形式のファイルからダウンロードをした" "" while True: #高速化目的100KBされます lines = [ line.decode("utf-8").rstrip() for line in f.readlines(102400)] if not lines: break for triple in parse_lines(lines): yield triple def parse_lines(lines): "" "タートルフォーマットのデータ解析してた" "" g = Graph() g.parse(deta='\n'.join(lines), format='n3') return g def tokenize(text): "" "MeCabをてて、分割してして" "" node = tagger.parseToNode(text) while node: if node.stat not in (2, 3): yield node.surface node = node.next with bz2.BZ2File(sys.argv[1]) as in_file: for (_, p, o) in read_ttl(in_file): if p.toPython() == 'http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#isString': for line in o.toPython().split('\n'): words = list(tokenize(line)) if len(words) > 20: print (''.join(words))

試したこと

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問