私はちょうど仕事のためのデータセットモジュール外のデータでテキストチュートリアルを考えています。私はデータフレームからいくつかのテキストデータを取得し、これを作業用の文字列変数として格納しています。私はスペイシー少しで働いてきたし、私はこれがテキスチャはtextacy.doc.Docクラスからコーパスを作成できません
class 'spacy.tokens.doc.Doc
だから私のことができるようにすべきであるが出力docオブジェクト
nlp = spacy.load('en')
doc1 = nlp(txt)
print(type(doc1))
を作成する標準的な方法を知っている
def mergeText(df):
content = ''
for i in df['textColumn']:
content += (i + '. ')
#print(content)
return content
txt = mergeText(df)
文書が示すようにこのdocファイルからコーパスを生成する
corpus = textacy.corpus.Corpus('en', docs=doc1)
しかし、私は私は私が同じようにtextacyオブジェクトを作成しようとしましたが、運
doc = textacy.Doc(txt)
print(type(doc))
<class 'spacy.tokens.doc.Doc'>
としている機能に
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-8-c6f568014162> in <module>()
----> 1 corpus = textacy.corpus.Corpus('en', docs=doc1, metadatas=None)
~/anaconda3/envs/nlp/lib/python3.6/site-packages/textacy/corpus.py in __init__(self, lang, texts, docs, metadatas)
156 else:
157 for doc in docs:
--> 158 self.add_doc(doc)
159
160 def __repr__(self):
~/anaconda3/envs/nlp/lib/python3.6/site-packages/textacy/corpus.py in add_doc(self, doc, metadata)
337 msg = '`doc` must be {}, not "{}"'.format(
338 {Doc, SpacyDoc}, type(doc))
--> 339 raise ValueError(msg)
340
341 #################
ValueError: `doc` must be {<class 'textacy.doc.Doc'>, <class 'spacy.tokens.doc.Doc'>}, not "<class 'spacy.tokens.token.Token'>"
を正しいタイプを渡しているにもかかわらず、このエラーを取得しますまた、それを生のテキストを渡すコーパスためのparamaterテキストを使用しようとしたが、これは
corpus[:10]
[Doc(1 tokens; "D"),
Doc(1 tokens; "e"),
Doc(1 tokens; "a"),
Doc(1 tokens; "r"),
Doc(1 tokens; " "),
Doc(1 tokens; "C"),
Doc(1 tokens; "h"),
Doc(1 tokens; "r"),
Doc(1 tokens; "i"),
Doc(1 tokens; "s")]
この問題を解決する方法上の任意のアイデアを出力?
EDIT ドキュメントを取得するために多くの行を形成し、ここでコーパスにこれを渡すと、私は、各テキストのテキストが下に保存されているスレッド
chat1 = df[(df['chat_hash']=='121418-456986')]
のために働いていたデータフレームであります「テキスト」列であり、必要に応じてスピーカー列を介してこれらのそれぞれをスピーカーにバインドすることができます。
現在、私はcapitol wordsの例を見ていますが、これをデータフレームを使用して分割する方法は完全にはわかりません。
records = cw.records(speaker_name={'Hillary Clinton', 'Barack Obama'})
text_stream, metadata_stream = textacy.fileio.split_record_fields(records, 'text')
corpus = textacy.Corpus('en', texts=text_stream, metadatas=metadata_stream)
corpus
docs
パラメータが反復可能に期待している、と反復可能の項目があることが
thread = df[(df['chat_hash']=='121418-456986')]
text_stream, metadata_stream = textacy.fileio.split_record_fields(thread, 'text')
corpus = textacy.Corpus('en', texts=text_stream, metadatas=metadata_stream)
corpus
私は複数の行であるスレッドで文章を処理しています。はい。だから私はそれに応じてデータを分割する必要があると仮定します。[capital words](http://textacy.readthedocs.io/en/stable/index.html) – PeachyDinosaur
データフレームの行はどのようなものですか?それぞれがスレッドの文章かスレッドの各投稿ですか? –
各行には「テキスト」列の会話があります。 – PeachyDinosaur