如何从简单的长(大)文本中以最小的丢失时间为数组添加唯一的单词?

时间:2017-10-12 14:38:42

标签: php arrays string performance bigdata

我希望从我的长篇文章中获取所有唯一的单词。你可以在这里看到我的示例代码但是我觉得它不是表现:

$text = $_REQUEST['text'];

$text = mb_strtolower($text);

$text = $this->TimesNewRoman($text);

$text = $this->Tajikan($text);

$text = $this->DSRL($text);

$text = preg_replace("/[^а-яёқӣғҷҳӯў ]/iu", ' ', $text);

$text = array_filter(array_unique(explode(" ", $text)));

$uncorrect_words = $this->WWOSTL($text);

$correct_words = $this->WWSTL($text);

/* Used methods(functions) from my class here */

public function TimesNewRoman($text)
{
    // Correcting Times New Roman Tj Symbols
    $search  = array("ѓ","ї","љ","њ","ќ","ў");
    $replace = array("ғ","ӣ","ҷ","ҳ","қ","ӯ");

    $result  = str_replace($search, $replace, $text);

    return $result;
}

public function Tajikan($text)
{
    // Correcting Tajikan Symbols
    $search  = array("щ","ц","ж","ь","ы","=");
    $replace = array("ғ","ӣ","ҷ","ҳ","қ","ӯ");

    $result  = str_replace($search, $replace, $text);

    return $result;
}

public function DSRL($text) // DELETE SPECIAL RUSSIAN WORDS WITH LETTERS ("ц", "щ", "ы", "ь")
{
    $text = mb_strtolower($text);

    $letters = array("ц", "щ", "ы", "ь");

    $pattern = '/\p{L}*[' . implode("", $letters) . ']\p{L}*/u';

    $text = preg_replace($pattern, '', $text);

    return $text;
}

public function WWSTL($array_words) // GET Words With Special Tajik Letters ("қ", "ҳ", "ҷ", "ӯ", "ғ", "ӣ", "ў")
{
    $letters = array("қ", "ҳ", "ҷ", "ӯ", "ғ", "ӣ", "ў");

    $pattern = '/[' . implode("", $letters) . ']/u';

    $result = preg_grep($pattern, $array_words);

    return $result;
}

public function WWOSTL($array_words) // GET Words Without Special Tajik Letters ("қ", "ҳ", "ҷ", "ӯ", "ғ", "ӣ", "ў")
{
    $letters = array("қ", "ҳ", "ҷ", "ӯ", "ғ", "ӣ", "ў");

    $pattern = '/[' . implode("", $letters) . ']/u';

    $result = preg_grep($pattern, $array_words, PREG_GREP_INVERT);

    return $result;
}

请告诉我们您对流程和代码的减少,优化和加速的意见。也许它是多余的代码,我可以做错事。应该注意的是,我的文本将非常大,我需要优化我的代码以使用如此大量的文本。如果您有任何优化和加快文本处理过程的选项,请提供帮助。提前谢谢大家。

我的小文字示例:

$text = "Русия ва вазъи сиёсию иқтисодӣ  ва фарҳангии   Осиёи Миёна,
бахусус аморати Бухоро мегардад. Маорифпарвар яке аз
роҳҳои дигаргунсозии   ҷомеаро дар маърифатнокшавии  
амиру ҳокимон, нест кардани зулм ва ислоҳоти ислом
медонист. Ислоҳоте, ки ў пешниҳод мекард, хислати
гуманистӣ  – инсонпарварӣ  дошт. Масъалаи инсон дар
маркази фалсафаи иҷтимоию сиёсии   ў меистод ва ин
таълимоти ў нисбат ба анъанаҳои классикӣ  бештар хислати
прогрессивию навин доштанд. Андешаҳои маорифпарварии  
мутафаккир дар асарҳояш «Наводир –ул-вақоеъ» ва дар
«Васоёти фарзандон ва баёни ҳақиқати касбҳову пешаҳо»
баён шудаанд. Дар ин асарҳо А. Дониш роҳҳои азнавсозии  
ҷамъиятро ба воситаи идеалҳои озодӣ , баробарӣ , бародарӣ ,
муттаҳидӣ  ва идеалҳое, ки ҳанўз дар асрҳои ХVII- ХVIII дар
Аврупо пайдо шуда буданд (ҳимояи адолати иҷтимоӣ , рушди
илму маориф, қадру қимати инсонӣ ) тарғиб менамояд.
3. Анъанаҳои фалсафаи рус
Давраи нисбатан озоди анъанаи фалсафаи рус аз
ташкилёбии   Донишгоҳи Москав (1755) оғоз меёбад.
Профессори аввалини факултаи фалсафаи ин донишгоҳ Н.И.
Поповский аз анъанаи курси фалсафии   лотинӣ  ба забони
русии   фалсафа гузаштанро даъват намуд. Вале сарфи назар
аз ин ташаббус афкори фалсафӣ  аз фишори сензураи
давлатӣ -калисоӣ  озод набуд.
Табиати эҳёгароии   фарҳангу фалсафаи рус дар эҷодиёти
мутафаккирон М.В.Ломоносов ва А.Н.Радишев бо низоми
нисбатан озоду равшан инъикос меёбад. Онҳо ба андозае
синтези фарҳанги атиқӣ  ва насрониро ба даст оварда бештар
майли маорифпарварӣ  доштанд.
Ломоносов ҳамчун табиатшиноси барҷаста (асосгузори
қонуни нигаҳдории   масса ва энергия)- поягузори анъанаи
материалистӣ  дар фалсафаи рус, Радишев аввалин шуда дар
ҷаҳонбинии   рус масъалаи инсонро ҳамчун арзиши муҳим
муайян намуд ва ба анъанаи маорифпарварии   инқилобӣ  ибтидо
гузошт. Чунин тарзи гузориши масъала дар ақидаҳои 
45
декабристон ва демократҳои инқилобӣ  (Белинский, Герсен,
Чернишевский ва диг.) ифода ёфт. Хусусияти фалсафаи рус
робитаи ақоидии   васеъ ҳам бо Ғарбу ва ҳам бо Шарқ мебошад.
Ҳамчун натиҷаи бўҳрони материализми механикӣ  ва
метафизикӣ  дар солҳои 30-юми асри ХIХ дар фалсафаи
Русия тағйири тамоил ба диалектикаи идеалистӣ  ба амал
меояд ва ингуна тамоил ба гузариши ақидаҳои
натурфалсафаи мутафаккирони рус ба мавқеи идеализм ва
дин таъсир мерасонад (Чаадаев).
Ҷустуҷўи хусусияти инкишофи иҷтимоии   Русия дар
маркази фалсафаи рус дарки вазифаҳои миллиро мегузорад.
Инқилобчиён-демократҳои рус – Белинский, Герсен,
Чернишевский консепсияи сотсиализми деҳқонӣ ,
общинагиро пешниҳод намуданд.
Файласуфони динӣ  – славянофилҳо (Киреевский,
Хомяков, Данилевский)- роҳи славянии   инкишофи ҷомеаро
аз диди таълимоти дини насронӣ  азнавсозии   навъи олмонии  
тафаккури фалсафиро тарғиб менамуданд. Дар ин ҷараён
фалсафаи В.С.Соловьев низоми хосро ташкил мекард.
Чунончи, аз ҷониби ў таҳлил намудани ягонагии   олам, инсон
ва соҳаи ғайриҳастӣ  (Худо); назарияи маърифатии   ў – бо
роҳи интуитивӣ , инъикоси рамзӣ  - символикӣ  ба ҳақиқат
ноил гардидан.
В.С.Соловьев мақоми хосро дар ҷараёни славянофилҳо
ишғол мекунад. Фалсафаи аз ҳама пурарзиш ба ақидаи
В.С.Соловьев фалсафаи тасаввуф мебошад, ки на бо тарғиби
берунии   ҳодисаҳо, балки бо тартиби ботинии   мавҷудот ва
ҳаёти онҳо машғул аст ва ҳаёти ин мавҷудотро муносибати
онҳо ба ҳастии   нахустибтидо муайян менамояд.
Моҳияти империяи Русияро В.Соловьев дар умумияти
аз миллат волотари Шарқу Ғарб мебинад. Русия, - мегўяд ў, -
натанҳо халқи рус, балки «оилаи халқҳо», ки на бо зўрӣ ,
ихтиёрӣ  муттаҳид шудаанд. Мутафаккир умуман муқобили
ҳамагуна ғуломӣ  ва системаи ҷомеаи ба ғуломӣ  асос ёфта 
46
буд. Тафаккури асили фалсафа ба ақидаи ў ҷустуҷўи
мунтазами ҳақиқати боэтимод мебошад.
Фалсафаи рус дар ин давра бо фарҳанги ватанашон, ба
хусус ба адабиёти он робитаи зич дошт.
Фалсафаи рус, ки дар ду даҳсолаи аввали асри ХХ таҳти
таъсири фалсафаи марксизм қарор надошт, мебоист роҳи
ояндаашро интихоб намояд. Аз Ғарб ба Русия неокантчигӣ ,
неогогелчигӣ , фалсафаи ҳаёт таъсир доштанд. Вале
файласуфони рус мекушиданд, то ҷабҳаи инсонгароии   ин
ҷараёнҳои фалсафиро инкишоф диҳанд.
Равияи дигаре, ки дар таҳти таъсири табиатшиносӣ 
ташаккул ёфта аст, космизми рус мебошад (Н.Ф.Федоров,
Ф.С.Соловьев, Н.А.Умов, К.Э.Циолковский ,
В.И.Вернадский ва дигарон). Масъалаи ягонагии   инсону
коинот ва табиати коинотии   инсон мавриди таҳлили ин
ҷараён қарор мегирад.
4. Фалсафа дар СССР
Тафаккури фалсафӣ  дар СССР бо хусусиятҳои миллӣ -
минтақавии   давлати сермиллат роҳи басо мураккабу
зиддиятнокро дар давоми 70 соли сохти Шўравӣ  тай
карда аст. Бурду бохтҳои фалсафа дар ин давра бо вазифаҳои
табаддулотҳои инқилобӣ  дар мамлакат, идеологияи
ҳукмрони коммунистӣ , мақоми роҳбарикунандагии   ҳизби
коммунистӣ  дар ҳамаи соҳаҳои иқтисодию иҷтимоӣ  ва
фарҳангию сиёсӣ  робитаи зич дошт. Дигар ҷиҳати инкишофи
фалсафа самти аз байн рафтани гуфтугўи файласуфони
марксистӣ  бо намояндагони дигар ҷараёнҳои фалсафӣ  буд.
Мубоҳисаҳои (дискуссияҳои) солҳои 20-ум, 30-юм, 40-
ум ба раванди рушди фалсафа дигаргуниҳо меандохтанд ва
баъзан файласуфонро ба ҷараёнҳои мухталиф ҷудо
мекарданд.
Муноқишаҳои аввалин (солҳои 20-ум) дар доираи
масъалаи мақоми фалсафаи марксистӣ , муносибати ў ба
илмҳои табиатшиносӣ  буд.
47
Тибқи ақидаҳои файласуфони ба ном «механистон»
фалсафа чун илми мустақил шуда наметавонад, ў бояд бо
хулосаҳои илми табиатшиносӣ  якҷоя бошад. Барои
«диалектикҳо» фалсафаи марксистӣ  дорои мазмуни хос ва
мустақил буда, вазифаи методологию маърифатиро иҷро
менамояд.
Хулосаи мубоҳисаҳои солҳои 30-юм сиёсигардонии  
пурраи назария ва принсипи ҳизбиятии   илми фалсафа ва
тамоми соҳаи ҷамъиятшиносӣ  гардид. Ҳамзамон барномаи аз
ҷониби Ленин муайян кардашудаи тадқиқотҳои таърихи
фалсафа ба роҳ монда шуда буд. Файласуфони шўравӣ  дар
ин давра диққати ҷиддӣ  ба тадқиқот ва нашри таърихи
материализм, таърихи диалектика, инкишофи сотсиализми
хаёлӣ  равона карда буданд. Тарҷумаи асарҳои файласуфони
материалисти фаронсавӣ , англисӣ , олмонӣ  ва бисёр дигар
асарҳои таърихӣ  нашр мешаванд.
Дискуссияи соли 1947 ба муҳокимаи асари таълимии  
Г.Ф.Александров «Таърихи фалсафаи Аврупои Ғарбӣ »
бахшида шуда буд. Аз муҳокимаҳо хулоса бармеояд, ки ин
асар ғайримарксистӣ  буда нақши инқилобии   марксизмро дар
фалсафа аз эътибор дур карда аст.
Танқиди шахсиятпарастии   Сталин дар съезди ХХ-уми
ҳизби коммунистӣ , баъдан азнавсозии   Горбачёв ба тамоюли
аз чорчўбаи догматизм озод шудани фалсафа, ба танзими
ақоидҳои гуногун ва гуфтугўи тамаддунҳо имконият
фароҳам оварданд.
Соли 1971 дар назди АУ СССР Ҷамъияти фалсафӣ 
ташкил меёбад, ки 8000 аъзоёни шахсӣ  ва 200 аъзоёни
коллективиро муттаҳид намуд. Дар солҳои фаъолияташ ин
ҷамъияти ихтиёрӣ  барои рушди эҷодии   тафаккури фалсафӣ 
дар мамлакат, ҷумҳуриҳои алоҳида ва рушди робитаҳои
илмии   файласуфони шўравӣ  бо файласуфони хориҷӣ  саҳми
арзанда гузошт. Худи Ҷамъияти фалсафии   СССР аъзои
баробарҳуқуқи Федератсияи байналмилалии   ҷамъиятҳои
фалсафӣ  буд.
48
Бешубҳа, ҷараёни инкишофи илм, фалсафа ҳам дар ин
ҷумла, бе бархурии   низомҳои гуногуни арзишҳо намешавад.
Муҳимтаринаш дар ин ҷараён донистани волоияти арзишҳои
умумибашарӣ , ҳамдигарро ғанӣ  гардонида ва дар замони
ҷаҳонишавӣ  нигоҳ дошта тавонистани анъанаҳои миллӣ 
мебошад. Ҳамин буд, ки дар СССР як зумра арбобони илми
фалсафа – Б.М. Кедров, В.Ф. Асмус, А.Ф. Лосев, Э.В.
Илъекков, М.М. Розентал, П.К. Анохин, Т.И. Ойзерман, М.Ф.
Овсяников ва дар ҳар як ҷумҳурият файласуфони номдор
тарбия ёфта ба хазинаи афкори фалсафӣ  саҳмгузор
гардиданд.
5. Мактабҳои фалсафии   Ғарб
Кўшиши тасвири нави олам
Фалсафаи асри ХХ кўшиш менамояд, то манзараи
оламро дар тағйирот ифода намояд, танқиди ратсионализму
илм, ки аз ҷониби ба ном «фалсафаи ҳаёт» ва дигар ҷараёнҳо
қарор гирифта буд, маҳдудияти усули хиради ақлиро дар
маърифат нишон медиҳад. Вале инкишофу фаҳмиши
идеяҳои умедбахш басо мушкил буданд, зеро онҳо бо
омезиши тасаввуротҳо, далелҳо ва хулосаҳои идеалистӣ 
пешниҳод мешуданд.
Кўшиши аз нав сохтани манзараи олам аз тарафи
файласуфи Фаронса Бергсон мушоҳида карда мешуд. Дар
таълимоти пайравони «фалсафаи ҳаёт» Бергсон, Нитсше,
Шпенглер чунин манзараи оламро мегузоранд, ки дар асоси
он фаҳмиши нави эволютсияи табиат, инкишофи инсон ва
ягонагии   онҳо истода бошад. Ба ақидаи онҳо материя тобеи
ҳаёт, эволютсияи олам ҳам ба туфайли ҳаёт тағйир меёбад.
Тасаввуроти субъективӣ -идеалистӣ  доир ба тасвири
нави олам дар фалсафаи эмпериокритисизм дида мешавад.
Мах, Авенариус, Богданов, Базаров кулли ҳастиро моҳиятан ";

2 个答案:

答案 0 :(得分:1)

这样做的有效方法是首先按字母顺序对单词进行排序,然后扫描整个数组,同时仅保留每个单词的第一次出现。这给你O(n * log(n))复杂度。这正是array_unique()内部发生的事情。

答案 1 :(得分:0)

像matey说的那样     array_unique 是最快的

但你可以尝试使用explode然后foreach:

foreach($words as $word){
   if(!isset($uniqueWords[$word])){
    $uniqueWords[$word] = 1;
   }
}

也许它更符合您的意图,因为您可以在if块中使用

创建更多内容