特定のテキストで最もよく使用される単語の ASCII チャートを作成する [closed] 質問する

特定のテキストで最もよく使用される単語の ASCII チャートを作成する [closed] 質問する

チャレンジ:

特定のテキストで最もよく使用される単語の ASCII チャートを作成します。

ルール:

  • 単語の一部としてa-z「and」 (アルファベット文字)のみを受け入れます。A-Z
  • 大文字と小文字は無視します (ここではShe== をshe使用します)。
  • 次の単語は無視してください (かなり恣意的であることは承知しています)。the, and, of, to, a, i, it, in, or, is
  • 説明: を考慮すると、これは と: (および)don'tの範囲内の 2 つの異なる「単語」として解釈されます。a-zA-Zdont

  • オプション(今となっては正式に仕様を変更するのは遅すぎます)5月すべての 1 文字の「単語」を削除することを選択します (これにより、無視リストも短くなる可能性があります)。

指定された を解析しtext(コマンドライン引数で指定されたファイルまたはパイプで入力されたファイルを読み取り、 と想定します)、次の特性を持つus-asciiを構築します。word frequency chart

  • 最も一般的な 22 個の単語 (頻度の降順) のグラフを表示します (下の例も参照)。
  • バーはwidth単語の出現回数(頻度)を(割合で)表します。スペースを 1 つ追加して単語を出力します。
  • これらのバー(プラススペース-単語-スペース)は常にフィット: bar+ [space]+ word+ は[space]常に <= 文字である必要があります80(バーと単語の長さが異なる可能性があることを必ず考慮してください。例: 2 番目に多い単語は、頻度はそれほど変わらないものの、最初の単語よりもずっと長くなる可能性があります)。最大化これらの制約内でバーの幅を調整し、バーが表す周波数に応じてバーを適切に拡大縮小します。

例:

例のテキストこちらからご覧いただけますルイス・キャロル著『不思議の国のアリス』)。

この特定のテキストから次のグラフが生成されます。

_________________________________________________________________________
|______________________________________________________________________________________| 彼女
|_______________________________________________________________| あなた
|____________________________________________________________| は言った
|____________________________________________________| アリス
|______________________________________________| は
|__________________________________________| それを
|___________________________________| として
|____________________________________________| 彼女
|____________________________| と
|____________________________| で
|___________________________| 秒
|___________________________| t
|_________________________| オン
|_________________________| すべて
|______________________| これ
|______________________| のために
|______________________| は
|_____________________| しかし
|____________________| である
|____________________| ない
|___________________| 彼ら
|__________________| だから


ご参考までに、上記のグラフの基になっている周波数は次のとおりです。

[('彼女', 553), ('あなた', 481), ('言った', 462), ('アリス', 403), ('だった', 358), ('それは
', 330), ('as', 274), ('her', 248), ('with', 227), ('at', 227), ('s', 219), ('t'
、218)、(「に」、204)、(「すべて」、200)、(「これ」、181)、(「のために」、179)、(「持っていた」、178)、(「
('しかし', 175), ('である', 167), ('ない', 166), ('彼ら', 155), ('だから', 152)]

2 番目の例 (完全な仕様を実装したかどうかを確認するため):youリンクされたすべての出現を置換します不思議の国のアリスファイルsuperlongstringstring:

________________________________________________________________
|________________________________________________________________| 彼女
|_______________________________________________________|超長文字列
|_____________________________________________________| は言った
|___________________________________________________________| アリス
|________________________________________| は
|_____________________________________| それを
|______________________________| として
|___________________________| 彼女
|_________________________| と
|_________________________| で
|________________________| 秒
|________________________| t
|______________________| オン
|_____________________| すべて
|___________________| これ
|___________________| のために
|___________________| は
|__________________| しかし
|_________________| である
|_________________| ない
|________________| 彼ら
|________________| だから

勝者:

最短の解答(文字数別、言語別)。楽しんでください!


編集: これまでの結果をまとめた表 (2012-02-15) (元々はユーザー Nas Banov によって追加されました):

言語 リラックス 厳格
========= ======= ======
ゴルフスクリプト 130 143
パール 185
Windows PowerShell 148 199
マセマティカ 199
ルビー 185 205
Unix ツールチェーン 194 228
パイソン 183 243
クロージュア 282
スカラ311
ハスケル 333
アーク336
298ルピー
ジャバスクリプト 304 354
グルーヴィー321
マトラボ404
C# 422
スモールトーク 386
450ペソ
ファ#452
TSQL 483 507

数字は、特定の言語における最短のソリューションの長さを表します。「厳密」とは、仕様を完全に実装したソリューションを指します (|____|バーを描画し、上部の最初のバーを線で閉じ____、頻度の高い長い単語の可能性を考慮するなど)。「緩和」とは、ソリューションを短縮するために多少の自由が取られたことを意味します。

500文字未満のソリューションのみが含まれます。言語のリストは、「厳密な」ソリューションの長さでソートされます。「Unix Toolchain」は、従来の*nixシェルを使用するさまざまなソリューションを示すために使用されます。プラスさまざまなツールの組み合わせ (grep、tr、sort、uniq、head、perl、awk など)。

ベストアンサー1

LabVIEW 51 ノード、5 つの構造、10 のダイアグラム

象にタップダンスを教えるのは決して楽しいことではありません。あー、文字数は省きます。

labVIEWコード

結果

プログラムは左から右へ流れます:

LabVIEWコードの説明

おすすめ記事