ホームページ >バックエンド開発 >PHPチュートリアル >キーワードを分割して一致させる

キーワードを分割して一致させる

WBOY
WBOYオリジナル
2016-06-13 13:01:03879ブラウズ

キーワードを分割して一致させます
記事内のキーワードを分割して一致させるにはどうすればよいですか?たとえば、次の記事:

兄と妹の仲は本当に悪いのでしょうか?夫は私より5歳年下で、結婚したばかりの頃、私たちの関係の基礎が十分に確立されていなかったので、今では子供が3歳になりました。過去 3 年間で何度口論したかわかりません。おそらく、夫婦はこんな感じで喧嘩したのでしょう。その後、二人はお互いを理解し、お互いを許容するようになりました。お互いに寛容です。夫はもっと子供っぽくて、ちょっとしたことで怒ります。ここ数年は一緒に遊びに行ったり、写真を撮ったりすることもほとんどありません。いいえ、私に何か買ってほしいと頼んだら、私はいつも正当化されますが、彼の支出は私たちの収入をはるかに上回っています。彼はあなたの言うことを聞かないのでどうすればいいですか?彼はとても傲慢で、他の人は自分ほど優れていないと思っています。私はあなたのことを本当に理解していません。私はそれを我慢できます、そもそも誰が私に彼を選ぶように言ったのでしょうか、そして私は子供たちのためにそれを我慢できます、私はただ彼がいつか自分も間違っていたことに気づくことを願っています。私が彼を我慢すればするほど、彼はますます傲慢になることに気づきました。彼が働きに行くときは、私があなたにできることを見つけて、あなたをサポートするためにお金を稼ぎに行くから、あなたは怠けているわけにはいかないと言いました。 、 はい、私が靴下を履いていないのを見たとき、私はそれを我慢しました。夕方戻ってくる、食事の準備ができているので、焼き芋が食べたい、買う必要があるなら買ってきてくださいと彼は言いました。 、あなたも行きなさい、それだけが聞きたくないことだった、私がお金に執着していると彼は不安になり、あなたがしたくないなら、あなたは何も知らないと言った。とにかく、彼らは私が働いていないと言います、それで私はお金を稼がないのですか?私は子供たちが自分の世話をするのには若すぎると言いました。子供たちの世話をしなさい、あなたは外に出てお金を稼ぐべきです、私は学校に行ったら当然お金を稼ぐだろうと言いました、しかしそれは間違っていました、なぜ私が世話をしなければならないのですか。私が不安になって、彼が私を怒らせると思うようなことを言い続けたので、私が言葉を失ったことを認めてほしいとお願いしました。しかし、彼はあなたが何も言わなかったと思いました、マスター、悪人の欠点は気にしません、そして私が間違っていたと彼は言いました。それから私は彼を叱りました、彼がそこからいくつかの洞察を得ることができるように、私は彼の間違いをいくつか見つけることができました。でもそうしなければ、彼らはさらに暴れ出すでしょう。私は今どうすればいいでしょうか?本当に助けてほしいのです。



ユーザーが記事を公開するときに、記事内の特定の単語をキーワードとして記録し、他の目的に使用したいと考えています。この要件を達成できるアルゴリズム/アイデアはありますか?それとも手動でキーワードを読んで要約/抽出するしかないのでしょうか?
-----解決策---------
1. キーワードテーブルがあります(追加可能) )
2. キーワード頻度を計算

自分で分詞を作らないでください(笑)
編集 (ここでの人物/役職) はまだ必要です
-----解決策---------
1 システム キーワード テーブル。置換キーワードと自動的に一致します。
2 ユーザーが

を入力するときにキーワードを指定します------解決策-----
説明:
1. 使用しているエンコーディングが gbk である場合は、該当するエンコーディング部分を削除してください
2. 文書処理時に投稿者が投稿したサンプルテキスト
3. コードは現在書かれています。アルゴリズムの問​​題があれば修正してください

iconv_set_encoding("internal_encoding", "utf-8");<br>
iconv_set_encoding("output_encoding", "gbk");<br>
ob_start("ob_iconv_handler");
<br>
$fn = 'article_example.txt 内のキーワードを分割して一致させる方法';<br>
<br>
$p = 新しい T;<br>
$ar = $p->parse($fn);<br>
print_r($ar);<br>
//print_r($p->dat);<br>
<br>
クラス T {<br>
var $maxlen = 4;//最大単語長<br>
var $dat = array();<br>
var $dict = array();<br>
関数 get($offs=0) {<br>
if($this->i + $offs >= $this->len <br><br>------解決策------ --------------- ----<font color="#FF8000"></font> $offs >= $this->maxlen) return false;<br>
$ch = $this->doc[$this->i + $offs];<br>
If(in_array($ch, $this->dict)) return false;<br>
$ch を返します;<br>
}<br>
関数 parse($filename) {<br>$this->dict =explode('<br><font color="#FF8000">-----解決策---------</font><br> ' 、iconv('gbk', 'utf-8', ',<br><font color="#FF8000">-----解決策--------- </font><br>。<br><font color="#FF8000">-----解決策---------</font><br>;<br><font color="#FF8000">------解決策-------</font><br>:<br><font color="#FF8000">----- -解決策-- -------</font><br>「<br><font color="#FF8000">-----解決策------ ------ --------</font><br>”<br><font color="#FF8000">-----解決策-----------</font><br> '));<br>
$s = file_get_contents($filename);<br>
$s = iconv('gbk', 'utf-8', $s);<br>
Preg_match_all('/./u', $s, $r);<br>
$this->doc = $r[0];<br>
$this->i = 0;<br>
$this->len = count($this->doc);<br>
while($this->i < $this->len) {<br>
If(($ch = $this->get()) !== false) { <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。