[解決済み] 2つのリストを同時に同じ順番でシャッフルする
2022-09-27 11:47:04
質問
私は
nltk
ライブラリの
movie_reviews
コーパスを利用した。私の仕事は、これらのレビューの予測性能を、データの前処理を行った場合と、前処理を行わなかった場合について得ることである。しかし、問題があります。
documents
と
documents2
同じ文書があり、両方のリストで同じ順序を保つために、それらをシャッフルする必要があります。リストをシャッフルするたびに別の結果が得られるので、別々にシャッフルすることはできません。そのため、同じ順番で一度にシャッフルして、最終的に比較する必要があります。私はpython 2.7を使用しています。
例(実際は文字列をトークン化していますが、相対的なものではありません)。
documents = [(['plot : two teen couples go to a church party , '], 'neg'),
(['drink and then drive . '], 'pos'),
(['they get into an accident . '], 'neg'),
(['one of the guys dies'], 'neg')]
documents2 = [(['plot two teen couples church party'], 'neg'),
(['drink then drive . '], 'pos'),
(['they get accident . '], 'neg'),
(['one guys dies'], 'neg')]
そして、両方のリストをシャッフルした結果、このようになります。
documents = [(['one of the guys dies'], 'neg'),
(['they get into an accident . '], 'neg'),
(['drink and then drive . '], 'pos'),
(['plot : two teen couples go to a church party , '], 'neg')]
documents2 = [(['one guys dies'], 'neg'),
(['they get accident . '], 'neg'),
(['drink then drive . '], 'pos'),
(['plot two teen couples church party'], 'neg')]
こんなコードがあります。
def cleanDoc(doc):
stopset = set(stopwords.words('english'))
stemmer = nltk.PorterStemmer()
clean = [token.lower() for token in doc if token.lower() not in stopset and len(token) > 2]
final = [stemmer.stem(word) for word in clean]
return final
documents = [(list(movie_reviews.words(fileid)), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
documents2 = [(list(cleanDoc(movie_reviews.words(fileid))), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
random.shuffle( and here shuffle documents and documents2 with same order) # or somehow
どのように解決するのですか?
次のようにすればよいでしょう。
import random
a = ['a', 'b', 'c']
b = [1, 2, 3]
c = list(zip(a, b))
random.shuffle(c)
a, b = zip(*c)
print a
print b
[OUTPUT]
['a', 'c', 'b']
[1, 3, 2]
もちろん、これはより単純なリストの例ですが、あなたの場合にも同じように適応されます。
お役に立てれば幸いです。幸運を祈ります。
関連
-
[解決済み] リスト内包型辞書の作成
-
[解決済み] Pythonでリストを逆順にトラバースする
-
[解決済み] リストの順番を維持したまま、重複を削除するにはどうしたらいいですか?
-
[解決済み] Pythonでリストをファイルに書き込む
-
[解決済み] C# List<string> からデリミタ付き文字列への変換
-
[解決済み] Pythonで一定の大きさの空リストを作成する
-
[解決済み] List<T> OrderBy Alphabetical Order(アルファベット順)
-
[解決済み] range()でリストを逆順に表示する?
-
[解決済み] Python のリストの降順でのソート
-
[解決済み】pythonで配列をシャッフルする、pythonで配列の項目の順序をランダムにする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】2つのnumpy配列を同時にシャッフルするためのより良い方法
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] バブルソートの宿題
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。