Woorden tellen, specifieke woorden! PHP
Ik probeer nu al een aantal uur te brainstormen hoe ik dit zou kunnen oplossen.
Wat ik graag wil doen is specifieke woorden wil opzoeken in een geposte commentaar.
Wellicht denk ik te hard en doe ik het veels te moeilijk.
$pcount moet in dit geval 3 aangeven (varieert natuurlijk kwa hoeveelheid tekst en $positief)
Op het momenten heb ik met PHP dit gemaakt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
function commentaarevalueren(){
$commentaar = 'goed ik lever positief en leuke commentaar op.';
$positief = 'positief leuke blij goed';
$positief=explode(' ',$positief);
$pcount = 0;
for($i=0;$i<count($positief);$i++) {
if(stripos($commentaar,$positief[$i]))
{
$pcount++;
}
else {
echo "fout in de code!";
}
}
echo "<br/>Aantal positieve woorden:" . $pcount;
}
?>
function commentaarevalueren(){
$commentaar = 'goed ik lever positief en leuke commentaar op.';
$positief = 'positief leuke blij goed';
$positief=explode(' ',$positief);
$pcount = 0;
for($i=0;$i<count($positief);$i++) {
if(stripos($commentaar,$positief[$i]))
{
$pcount++;
}
else {
echo "fout in de code!";
}
}
echo "<br/>Aantal positieve woorden:" . $pcount;
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
function getDetectedWordsAmount($text, array $words_to_detect){
$words_detected = 0;
foreach ($words_to_detect as $word) {
if (strpos($text, $word)) {
$words_detected++;
}
}
return $words_detected;
}
// Voorbeeld 1
$words_to_detect = array('koe', 'melk', 'baksteen');
$text = 'De koe in de wei geeft melk.';
echo 'Deze woorden moeten gedetecteerd worden:<br><strong>' . implode(' ', $words_to_detect) . '</strong><br><br>';
echo getDetectedWordsAmount($text, $words_to_detect) . ' van deze woorden komen voor in de tekst:<br><strong>' . $text . '</strong><br><br>';
// Voorbeeld 2
$words_to_detect = array('auto', 'fiets', 'vliegtuig', 'paard', 'hoefijzer');
$text = 'Het oude hoefijzer van het paard ligt in de schuur naast de fiets.';
echo 'Deze woorden moeten gedetecteerd worden:<br><strong>' . implode(' ', $words_to_detect) . '</strong><br><br>';
echo getDetectedWordsAmount($text, $words_to_detect) . ' van deze woorden komen voor in de tekst:<br><strong>' . $text . '</strong><br><br>';
?>
function getDetectedWordsAmount($text, array $words_to_detect){
$words_detected = 0;
foreach ($words_to_detect as $word) {
if (strpos($text, $word)) {
$words_detected++;
}
}
return $words_detected;
}
// Voorbeeld 1
$words_to_detect = array('koe', 'melk', 'baksteen');
$text = 'De koe in de wei geeft melk.';
echo 'Deze woorden moeten gedetecteerd worden:<br><strong>' . implode(' ', $words_to_detect) . '</strong><br><br>';
echo getDetectedWordsAmount($text, $words_to_detect) . ' van deze woorden komen voor in de tekst:<br><strong>' . $text . '</strong><br><br>';
// Voorbeeld 2
$words_to_detect = array('auto', 'fiets', 'vliegtuig', 'paard', 'hoefijzer');
$text = 'Het oude hoefijzer van het paard ligt in de schuur naast de fiets.';
echo 'Deze woorden moeten gedetecteerd worden:<br><strong>' . implode(' ', $words_to_detect) . '</strong><br><br>';
echo getDetectedWordsAmount($text, $words_to_detect) . ' van deze woorden komen voor in de tekst:<br><strong>' . $text . '</strong><br><br>';
?>
Het resultaat in je browser:
Deze woorden moeten gedetecteerd worden:
koe melk baksteen
2 van deze woorden komen voor in de tekst:
De koe in de wei geeft melk.
Deze woorden moeten gedetecteerd worden:
auto fiets vliegtuig paard hoefijzer
3 van deze woorden komen voor in de tekst:
Het oude hoefijzer van het paard ligt in de schuur naast de fiets.
Gewijzigd op 05/06/2011 03:07:28 door Ozzie PHP
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
function getDetectedWordsAmount($text, array $words_to_detect){
return count(array_intersect($words_to_detect, str_word_count($text, 1)));
}
?>
function getDetectedWordsAmount($text, array $words_to_detect){
return count(array_intersect($words_to_detect, str_word_count($text, 1)));
}
?>
geinig Mark :)
Domo arrigato!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
function commentaarevalueren($commentaar, array $words_to_detect){
$words_detected = 0;
foreach ($words_to_detect as $word) {
if (strpos($commentaar, $word)) {
$words_detected++;
}
}
return $words_detected;
}
echo '<br/>Deze woorden worden herkent:<br/>';
echo 'goed positief best perfect slecht maar kan negatief <br/>';
echo '__________________________________________________________<br/>';
$commentaar = $_POST['commentaar'];
$words_to_detect = array('goed', 'goed', 'positief', 'best', 'perfect' );
echo '<br/>';
echo commentaarevalueren($commentaar, $words_to_detect) . ' van deze woorden zijn positief.<br/>';
$pcount = commentaarevalueren($commentaar, $words_to_detect);
$words_to_detect = array('slecht', 'maar', 'kan', 'negatief' );
$commentaar = $_POST['commentaar'];
echo commentaarevalueren($commentaar, $words_to_detect) . ' van deze woorden zijn negatief';
$ncount =commentaarevalueren($commentaar, $words_to_detect);
if($pcount > $ncount)
{
echo"<br/>Commentaar is positief:<br/>";
}
else
{
echo "<br/>Commentaar is negatief:<br/>";
}
?>
function commentaarevalueren($commentaar, array $words_to_detect){
$words_detected = 0;
foreach ($words_to_detect as $word) {
if (strpos($commentaar, $word)) {
$words_detected++;
}
}
return $words_detected;
}
echo '<br/>Deze woorden worden herkent:<br/>';
echo 'goed positief best perfect slecht maar kan negatief <br/>';
echo '__________________________________________________________<br/>';
$commentaar = $_POST['commentaar'];
$words_to_detect = array('goed', 'goed', 'positief', 'best', 'perfect' );
echo '<br/>';
echo commentaarevalueren($commentaar, $words_to_detect) . ' van deze woorden zijn positief.<br/>';
$pcount = commentaarevalueren($commentaar, $words_to_detect);
$words_to_detect = array('slecht', 'maar', 'kan', 'negatief' );
$commentaar = $_POST['commentaar'];
echo commentaarevalueren($commentaar, $words_to_detect) . ' van deze woorden zijn negatief';
$ncount =commentaarevalueren($commentaar, $words_to_detect);
if($pcount > $ncount)
{
echo"<br/>Commentaar is positief:<br/>";
}
else
{
echo "<br/>Commentaar is negatief:<br/>";
}
?>
Gewijzigd op 05/06/2011 17:50:08 door ismael aharouay
Quote:
Dit is niet heel mooi maar dat vind ik niet erg.
Dan zal jou script zeggen dat het negatief is maar dat is het niet
alles wat in the array positief ziet wordt opgeteld. Mooi zit er niet tussen. Ik heb het gewoon zo kort mogelijk gehouden. Het gaat mij meer om dat ik specifieke woorden kan tellen :)
Gewijzigd op 08/06/2011 19:09:03 door ismael aharouay