2012-03-07 5 views
0

私は、文書をランク付けするためのTF-IDFを計算するためにC#でプログラムを書いた。私のXML for documentランキングで何が問題になっていますか?

次のXMLを使用して、ドキュメント内に単語の頻度を格納しました。私はこの構造を使用したことで大きく批判されました。私はタグ内の単語のテキストを使用していますが、私のように効率的で、より少ないスペースを消費します。また、XDocumentを使って簡単にツリー構造を検索することもできます。あなたはなぜ私がひどく批判されたのか理解できますか?

批判:メタデータ内にどのように情報を追加できますか? (私にとっては革新的です)。

<word> 
    <siddhartha> 
     <doc1> 4 </doc4> 
     <doc2> 5 </doc2> 

    <insipration> 
     <doc1> 4 </doc1> 
     <doc6> 5 </doc6> 

    .... 
</word> 

私はこのような何か示唆された。

<word> 
    <text> siddhartha </text> 
    <doc1> 4 </doc1> 
    <text> inspiration </text> 
    <doc1> 4 </doc1> 
    ... 
    </word> 
+0

。 –

+0

"ドキュメントをランク付けするためにTF-IDFを計算するプログラムをC#で作成しました。" 「TF-IDF」とは何ですか? – Khan

+0

@Kirkメタデータ内にどのように情報を挿入できますか? – codious

答えて

1

あなたの構造、ノードとして単語名で、一般的なパーサで解析するのは難しいだろう。定義された構造はありません。文書全体を読んでそれを知る必要があります。私はこのような何かを行っていること

は(私はあなたの考えに閉じたまましようとした):空気が批判を言ったためにそれがあなたのために役立つだろう

<words> 
    <word id="siddhartha"> 
     <freq id="doc1"> 4 </freq> 
     <freq id="doc2"> 5 </freq> 
    </word> 
    .... 
</words> 
+0

提案していただきありがとうございます。頻度を検索するには、perdoc.Root.Element( "siddhartha")要素( "doc1")。valueを使用します。どのようにあなたの構造を使用して置き換えられますか? – codious

+0

私は毎日XMLを解析しません:)しかし、それは非常に簡単です。ちょうどそのID属性で単語ノードを選択し、次に同じ方法で子をフェッチする必要があります。あなたのAPIに既にそのようなメソッドがあるかもしれません。 –

+1

IEnumerable ユーザー= (XMLDoc.root.Elements( "Word")のelから) ここで(文字列)el.Attribute( "id")== "siddhartha" select el);開始のために。 –

関連する問題