アプリ版:「スタンプのみでお礼する」機能のリリースについて

データ処理など、もともと疎い者です。
恐れ入りますが御相談させていただきます。

以下のようなデータについて、当初、エクセル関数でのデータ処理が可能かどうか別の質問枠で質問させていただきましたが、エクセル関数では難しいということを御教示頂きました。

例えば
「赤いリンゴ」,「大きい梨」,「みかんジュース」,「ももゼリー」,「リンゴジャム」,「洋梨」,「甘いみかん」, 「白いもも」,「完熟したスイカ」,「酸っぱいレモン」,「青森のリンゴ」
こうしたデータが1つの列に並んでいるとします。

このデータでは、「リンゴ」の文字が部分一致しているものが3個、「梨」の文字が部分一致しているものが2個、「みかん」の文字が部分一致しているものが2個、「もも」の文字が部分一致しているものが2個、「スイカ」の文字が部分一致しているものは1個、「レモン」の文字が部分一致しているものも1個となっています。

この場合、部分一致する集団としては「リンゴ」、「梨」、「みかん」、「もも」、「スイカ」、「レモン」であり、集団の数は6個となります。

このようなデータが1つの列に数千から一万程度並んでおり、集団の数も数百から数千になると予想されます。また、部分一致するキーワード(「リンゴ」、「梨」など)がわからない状態です。そのため、部分一致しているかどうかも自動で判別させる必要があります。

私はプログラミングは完全な素人で、こうしたデータは例えばPythonなどのプログラミングによりデータ処理が可能なのでしょうか。
(もし可能であれば、大まかなプログラミングの流れを御教示いただければ幸いです。)

A 回答 (3件)

文字列操作できないプログラミング言語は無いです。


そういった場合は処理するプログラミング言語ではなく用意するデータの格好をデザインする事の方が大切です。

例えばご質問に書かれている、、、

「赤いリンゴ」,「大きい梨」,「みかんジュース」,「ももゼリー」,「リンゴジャム」,「洋梨」,「甘いみかん」, 「白いもも」,「完熟したスイカ」,「酸っぱいレモン」,「青森のリンゴ」

という文字列が1行になっている場合、データ間の区切り子は先頭が「で、中間は「,」で、最後は」となります。
つまり最初のデータは文字列の先頭から見て行って最初の「の次から。
そのデータの終わりは」,「の前までか」が文字列の最後の文字の場合(これはデータが1個のみの場合)。
2番目以降のデータはこの」,「の後ろから次の」,「の前までか」が文字列の最後の文字の場合。

これでは面倒です。
そこでこれを、、、

赤いリンゴ,大きい梨,みかんジュース,ももゼリー,リンゴジャム,洋梨,甘いみかん, 白いもも,完熟したスイカ,酸っぱいレモン,青森のリンゴ

とすれば文字列の先頭から見て行って,を検出するたびに抽出し文字列の最後
達したらその前までを最後のデータとして抽出するだけで済みます。

更に、、、

赤いリンゴ
大きい梨
みかんジュース
ももゼリー
リンゴジャム
洋梨
甘いみかん
白いもも
完熟したスイカ
酸っぱいレモン
青森のリンゴ

と1行データにしてあげれば文字列の先頭から改行コードまでを1データとして抽出できます。

で。個々のデータの抽出が出来てしまえばその1個1個のデータの中に探している文字列があるかどうかを比較してあげればよいだけです。

繰り返しになりますが、上記のような文字列検索の処理はどのようなプログラミング言語でも行う事が出来ます。
ただし、使用する言語によって文字列の抽出や比較に便利な機能が有ったり無かったりの差はあります。
しかし、無い場合は自分でその処理を書けばよいだけのことです。
どれだけ効率の良い処理を書けるかはそのプログラムの設計者またはプログラマのアルゴリズムなどの勉強度合、発想力、経験値によりますが。。。

参考まで。
    • good
    • 0
この回答へのお礼

プログラミングについて丁寧に教えていただき、誠にありがとうございます。

どのようなプログラミング言語でも文字列操作が可能であるということ、プログラミングにおいてはデータのデザインが大切であるということですね。
知らなかったことばかりで大変勉強になりました。
実際的に私がプログラミングでデータ処理をするのはかなりハードルが高いということもわかりました。
No.1様、No.3様からも教えていただきましたが、集団のキーワードを予測して検索を行う方針を考えております。
私が質問した例を挙げて説明して頂き、大変わかりやすかったです。
お時間を割いて頂き感謝申し上げます。ありがとうございました。

お礼日時:2018/03/27 20:48

#1 でも言われていますが, 例えば


「部分一致するキーワード」は果物の名称である
ということがわかっているなら, やりようはあります. 単純には (これも #1 で言われていますが) キーワードつまり果物の名称をリストにしておいて, それと突き合わせればいいわけです. これなら単に突き合わせるだけなのでどうとでもできる.

そうでなく, 本当に「部分一致するキーワードがわからない」んだとすると, その前にある「このデータでは」の部分ですら「なぜそう判断したのか」という疑問が出てきますね. 例えば
なぜ「完熟したスイカ」ではなく「スイカ」を部分一致するキーワードとしたのか
についてすら, この文章中に答えはありません.
    • good
    • 0
この回答へのお礼

御回答を頂き、誠にありがとうございます。
部分一致するためのキーワードがないとこうしたデータ処理は難しいのですね。
No.1 様からも教えて頂きましたが、キーワードを予測し、キーワードの集団のリストを作成して比較するという方針を検討したいと思います。
わかりやすく教えて頂き、ありがとうございました。
貴重な御意見を参考にさせて頂きます。

お礼日時:2018/03/27 20:36

キーワードは予想できないのでしょうか?


例えば、果物の名称をリストアップしたファイルを作っておくとかいったことはできないでしょうか?
    • good
    • 0
この回答へのお礼

御指摘を頂き、ありがとうございます。
前もってキーワードをリストアップすることは難しいのですが、やはり比較となるものがないと、
こうしたデータ処理は難しいということですね。
キーワードの予測についても検討したいと思います。
大変参考になる意見を頂き、感謝申し上げます。

お礼日時:2018/03/27 20:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!