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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

解決済

python 形態素解析した内容をテキストファイルに書く

---stax---
---stax---

総合スコア148

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

1回答

0リアクション

2クリップ

404閲覧

投稿2018/04/26 07:38

表題の件について質問させてください
pythonで形態素解析した内容をテキストファイルに起こそうとしたのですが、書き込んだ内容が反映されず苦戦しています(生成されたテキストファイルを見ると容量が増えたり0になったりします)

環境はWindows上でAnacondaを使用してjupyter notebookでコードを書いています
分かち書きに使用しているのはjanome、word2vecにはgensimのモジュールを使用しています
テキストファイルはwebから適当なダミーを落として使用しています

ファイルに書き出そうとしているのは以下の部分です
知識が浅く初歩的な内容かと思いますがアドバイスよろしくお願いいたします

python

with open("test_token.txt", "w") as fp: for token in tokens: word.append(token) fp.write(str(word)) fp.write("\n")

以下コード全文

python

from janome.tokenizer import Tokenizer from gensim.models import word2vec from sklearn.decomposition import PCA import matplotlib.pyplot as plt import logging import sys import re import numpy as np word=[] ## textファイルを開く # \はエラー、\で表記する textfile = open('C:\Users\Desktop\sanshiro.txt') # textファイルの内容を読み込む(文字列を返す) line = textfile.read() textfile.close() ## ファイル整形 # |の除去 line = line.replace('|','') #ルビの除去 line = re.sub('《.+?》', '', line) #入力注の除去 line = re.sub('[#.+?]', '', line) # 空行の削除 text = re.sub('\n\n', '\n', line) text = re.sub('\r', '', line) #### 果確認 # 先頭100文字出力 print(line[:100]) #--------------------------------------------------------関数 ## 分かち書き(janome使用) # Tokenizerのインスタンス生成 t = Tokenizer() # 文字列型を引数とする def extract_words(text): #tokenizeメソッドに文字列の引数を渡して形態素解析を行う,tokensはlist型 #中身は。区切りした文が形態素解析された状態で入っている #うとうととして目がさめると女はいつのまにか、隣のじいさんと話を始めている。 #⇒['うとうと', 'と', 'し', 'て', '目', 'が', 'さめる', 'と', '女', 'は', 'いつのまにか', '、', '隣', 'の', 'じいさん', 'と', '話', 'を', '始め', 'て', 'いる'] tokens = t.tokenize(text) with open("test_token.txt", "w") as fp: for token in tokens: word.append(token) fp.write(str(word)) fp.write("\n") #リスト内包表記を使用して形態素解析されたリストtokensの中身の品詞を、区切りにして原型(引数で受け取ったままの形式)のまま返す return [token.base_form for token in tokens if token.part_of_speech.split(',')[0]] #。区切りにする sentences = line.split('。') wordlist = [extract_words(sentence) for sentence in sentences] #word2vec学習開始 model = word2vec.Word2Vec(wordlist, size=200, min_count=5, window=5, iter=100) word2vec_model=model print(model['世間']) ret = model.wv.most_similar(positive=['世間']) for item in ret: print(item[0], item[1])

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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