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

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

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

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Python

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

Q&A

3回答

852閲覧

同じ文書ファイルか判断したい、(追加情報が入ったりしているが)

oika77

総合スコア184

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Python

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

0グッド

0クリップ

投稿2022/01/11 04:35

今回やりたいことは、二つの文書ファイルがあり、同じ文書かどうかを判断したいです。
例えば以下の文書ファイル

txt

1コード 2Appleは1976年4月1日にスティーブ・ジョブズ、スティーブ・ウォズニアック、ロナルド・ウェイン(英語版)の3人で設立され、 3ウォズニアックが開発したパーソナルコンピュータ、Apple Iを開発・販売していたが、 4ウェインは12日以内に自分の持ち分をジョブズとウォズニアックに売り戻した[19][20]。 5ジョブズのガレージは製造したコンピュータの動作確認や納品のために使用されていた [21][22]。 6

txt

1コード 2Apple(アップル)は1976/4/1/にスティーブ・ジョブズ、スティーブ・ウォズニアック、ロナルド・ウェイン(英語版)の3人で設立され、 3ウォズニアックが開発したパーソナルコンピュータ、Apple Iを開発・販売していたが、 4(中略) 5ジョブズのガレージは製造したコンピュータの動作確認や納品のために使用されていた [21][22]。 6

二つの文書ファイルの文書の内容は同じですが、たまに(中略)や振り仮名や日付の書き方が違っていたりします。
このような文書が大量の文書ファイルの中に混じっている可能性があるので、それを抽出したいと考えています。

今考えている解決方法
ファイル1の文書を5文字ごとに分割して、ファイル2の文書にその5文字の文字列がマッチするかどうかを確認し、マッチする割合を算出します。
これを大量の文書ファイルで網羅的にやろうと思うのですが、どうでしょうか。
もっと良い方法があったら教えてください。よろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

■R 言語
何ができればゴールなのか分かりませんでしたが、
文書の同一性のみ確認したいなら全文を丸ごと文字列型にし比較演算子を利用すればよい。

どこが差分違うのか、差分が見たいなら以下が参考になるでしょう。
https://www.karada-good.net/analyticsr/r-325/

投稿2022/01/11 05:00

編集2022/01/11 05:02
haihaikazuma

総合スコア181

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

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

0

difflibを使うと楽だと思います。
参考:PythonでDiff
あるいはfilecmpでもよいかもしれません。

投稿2022/01/11 04:56

can110

総合スコア38266

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

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

0

spaCy · Industrial-strength Natural Language Processing in Python を利用すると良いかもしれません(warning message が表示されますけれども)。

sh

1$ pip3 install spacy 2$ python3 -m spacy download ja_core_news_sm

python

1import spacy 2 3text1 = ''' 4Appleは1976年4月1日にスティーブ・ジョブズ、スティーブ・ウォズニアック、ロナルド・ウェイン(英語版)の3人で設立され、 5ウォズニアックが開発したパーソナルコンピュータ、Apple Iを開発・販売していたが、 6ウェインは12日以内に自分の持ち分をジョブズとウォズニアックに売り戻した[19][20]。 7ジョブズのガレージは製造したコンピュータの動作確認や納品のために使用されていた [21][22]。 8'''.strip() 9 10text2 = ''' 11Apple(アップル)は1976/4/1/にスティーブ・ジョブズ、スティーブ・ウォズニアック、ロナルド・ウェイン(英語版)の3人で設立され、 12ウォズニアックが開発したパーソナルコンピュータ、Apple Iを開発・販売していたが、 13(中略) 14ジョブズのガレージは製造したコンピュータの動作確認や納品のために使用されていた [21][22]。 15'''.strip() 16 17nlp = spacy.load('ja_core_news_sm') 18 19text1 = nlp(text1) 20text2 = nlp(text2) 21 22print(text1.similarity(text2)) 23 24# 25UserWarning: [W007] The model you're using has no word vectors loaded, so the result of the 26Doc.similarity method will be based on the tagger, parser and NER, which may not give useful 27similarity judgements. This may happen if you're using one of the small models, 28e.g. `en_core_web_sm`, which don't ship with word vectors and only use context-sensitive tensors. 29You can always add your own word vectors, or use one of the larger models instead if available. 30 print(text1.similarity(text2)) 31 320.9702315447787564

投稿2022/01/11 05:09

編集2022/01/11 05:14
melian

総合スコア19803

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問