Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでの外観に基づいてフレーズを分類するプログラム


2つのリストが与えられたとします。いくつかの選択されたフレーズを含む「フレーズ」と、他のリストのフレーズを含む場合と含まない場合があるいくつかのセンテンスを含む「センテンス」。最初のリストのさまざまなフレーズが2番目のリストに表示されるかどうかを確認し、2番目のリストの表示に基づいて最初のリストのフレーズを並べ替える必要があります。ソートされたリスト「フレーズ」を出力として返します。

したがって、入力がフレーズ=['strong'、'耐久性'、'効率的']、文=['製品は耐久性があり効率的'、'強力で耐久性'、'効率的'、'のようである場合効率的であるため']、出力は['効率的'、'耐久性'、'強い']

になります

「効率的」というフレーズは、文0、2、および4に表示されます。これは最も多く出現するため、出力の先頭にあります。 「durable」と「strong」というフレーズは、それぞれ文0と1、および1に表示されます。したがって、これらのフレーズは出力の次の位置を取得します。

これを解決するには、次の手順に従います-

  • cnt:=新しいマップ
  • フレーズの各機能について、
    • cnt [feature]:=0
  • 文中の各応答について、
    • p:=応答の単語を含む新しいリスト
    • s:=pからの新しいセット
    • sの各iについて、
      • iがcntに存在する場合、
        • cnt [i]:=cnt [i] + 1
  • res:=cnt内のすべてのkのペア(k、cnt [k])を含む新しいリスト
  • カウントkに基づいてリスト解像度を並べ替えます
  • カウント値kを含めずにリストresを返します

理解を深めるために、次の実装を見てみましょう-

def solve(phrases, sentences):
   cnt = {}
   for feature in phrases:
      cnt[feature] = 0
   for response in sentences:
      p = response.split()
      s = set(p)
      for i in s:
         if i in cnt:
            cnt[i] += 1
   res = [[k, cnt[k]] for k in cnt]
   res.sort(key = lambda x:(-x[1], phrases.index(x[0])))
   return [i[0] for i in res]

print(solve(['strong', 'durable', 'efficient'], ['the product is durable and efficient', 'strong and durable', 'it is efficient', 'like it because it is efficient']))

入力

['strong', 'durable', 'efficient'],
['the product is durable and efficient', 'strong and durable', 'it is
efficient', 'like it because it is efficient']
>

出力

['efficient', 'durable', 'strong']

  1. Pythonプログラムでの選択ソート

    この記事では、Python3.xでの選択ソートとその実装について学習します。またはそれ以前。 選択ソート アルゴリズムでは、配列は、ソートされていない部分から最小要素を再帰的に見つけて、それを先頭に挿入することによってソートされます。特定の配列での選択ソートの実行中に、2つのサブ配列が形成されます。 すでに並べ替えられているサブ配列。 ソートされていないサブアレイ。 選択ソートを繰り返すたびに、ソートされていないサブアレイの最小要素がポップされ、ソートされたサブアレイに挿入されます。 アルゴリズムの視覚的表現を見てみましょう- それでは、アルゴリズムの実装を見てみましょう-

  2. 選択ソート用のPythonプログラム

    この記事では、Python3.xでの選択ソートとその実装について学習します。またはそれ以前。 選択ソート アルゴリズムでは、配列は、ソートされていない部分から最小要素を再帰的に見つけて、それを先頭に挿入することによってソートされます。特定の配列での選択ソートの実行中に、2つのサブ配列が形成されます。 すでにソートされているサブアレイ ソートされていないサブアレイ。 選択ソートを繰り返すたびに、ソートされていないサブアレイの最小要素がポップされ、ソートされたサブアレイに挿入されます。 アルゴリズムの視覚的表現を見てみましょう- それでは、アルゴリズムの実装を見てみましょう- 例