Kısaltma


12

Görev:

Örneğin dftba, bir kısaltmayı girdi olarak alacak bir program oluşturun ve kısaltmanın dayanabileceği bazı kelime öbekleri oluşturun. Kelime listesini kelime girişi olarak kullanabilirsiniz. Esinlenerek https://www.youtube.com/watch?v=oPUxnpIWt6E

Misal:

input: dftba
output: don't forget to be awesome

Kurallar:

  • Programınız aynı kısaltma için her seferinde aynı kelime öbeğini oluşturamaz, rasgeleleştirme olmalıdır
  • Girişin tamamı küçük harf olacak
  • Birkaç örnek gönderin (giriş ve çıkış)
  • Herhangi bir dil kabul edilir
  • Bu bir , bu yüzden çoğu upvotes kazanıyor!

Lütfen örnek bir çıktı gösterin.
Mukul Kumar

@MukulKumar eklenmelidir
TheDoctor

1
Anlamlı mı olmalı? veya herhangi bir kombinasyon?
Mukul Kumar

Anlamlı olması gerekmez
TheDoctor

Kullanıcının programı kaç kez çalıştırmasına izin verilir? Bir noktada program 1 numaralı kuralı ihlal edemez.
Bay Lister

Yanıtlar:


8

HTML, CSS ve JavaScript

HTML

<div id='word-shower'></div>
<div id='letter-container'></div>

CSS

.letter {
    border: 1px solid black;
    padding: 5px;
}

#word-shower {
    border-bottom: 3px solid blue;
    padding-bottom: 5px;
}

JS

var acronym = 'dftba', $letters = $('#letter-container')
for (var i = 0; i < acronym.length; i++) {
    $letters.append($('<div>').text(acronym[i]).attr('class', 'letter'))
}

var $word = $('#word-shower')
setInterval(function() {
    $.getJSON('http://whateverorigin.org/get?url=' + encodeURIComponent('http://randomword.setgetgo.com/get.php') + '&callback=?', function(word) {
        word = word.contents.toLowerCase()
        $word.text(word)
        $letters.children().each(function() {
            if (word[0] == this.innerText) {
                this.innerText = word
                return
            }
        })
    })
}, 1000)

Rastgele bir kelime üreteci kullanır ve kelimeleri ararken canlı sonuçları gösterir.

İşte kendiniz çalıştırmak istiyorsanız bir keman.

Çıktının bir GIF'i:

animasyonlu çıktı


7

Java

Vikisözlükten bir kelime listesi getirir. Listeden doğru harfle başlayan rastgele bir sözcük seçer. Ardından, olası sonraki kelimeleri aramak için Google önerisini tekrar tekrar kullanır. Olasılıkların bir listesini çıkarır. Aynı kısaltma ile yeniden çalıştırırsanız, farklı sonuçlar elde edersiniz.

import java.io.*;
import java.net.*;
import java.util.*;

public class Acronym {

    static List<List<String>> wordLists = new ArrayList<List<String>>();
    static {for(int i=0; i<26; i++) wordLists.add(new ArrayList<String>());}
    static String acro;

    public static void main(String[] args) throws Exception {
        acro = args[0].toLowerCase();

        //get a wordlist and put words into wordLists by first letter
        String s = "http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists/PG/2006/04/1-10000";
        URL url = new URL(s);
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            if(inputLine.contains("title")) {
                int start = inputLine.indexOf("title=\"");
                int end = inputLine.lastIndexOf("\">");
                if(start>=0 && end > start) { 
                    String word = inputLine.substring(start+7,end).toLowerCase();
                    if(!word.contains("'") && !word.contains(" ")) {
                        char firstChar = word.charAt(0);
                        if(firstChar >= 'a' && firstChar <='z') {
                            wordLists.get(firstChar-'a').add(word);
                        }
                    }
                }
            }
        }

        //choose random word from wordlist starting with first letter of acronym
        Random rand = new Random();
        char firstChar = acro.charAt(0);
        List<String> firstList = wordLists.get(firstChar-'a');
        String firstWord = firstList.get(rand.nextInt(firstList.size()));

        getSuggestions(firstWord,1);

    }

    static void getSuggestions(String input,int index) throws Exception {
        //ask googleSuggest for suggestions that start with search plus the next letter as marked by index
        String googleSuggest = "http://google.com/complete/search?output=toolbar&q=";
        String search = input + " " + acro.charAt(index);
        String searchSub = search.replaceAll(" ","%20");

        URL url = new URL(googleSuggest + searchSub);
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            String[] parts = inputLine.split("\"");
            for(String part : parts) {
                if(part.startsWith(search)) {
                    //now get suggestions for this part plus next letter in acro
                    if(index+1<acro.length()) {
                        String[] moreParts = part.split(" ");
                        Thread.sleep(100);
                        getSuggestions(input + " " + moreParts[index],index+1);
                    }
                    else {
                        String[] moreParts = part.split(" ");
                        System.out.println(input + " " + moreParts[index]);
                    }
                }
            }
        }
        in.close();
    }
}

Örnek çıktı:

$ java -jar Acronym.jar ght
great harvest trek
great harvest tulsa
great harvest taylorsville
great harvest temecula
great harvest trek
great harvest twin
great harvest tempe
great harvest twin
great harvest turners
great harvest twitter
great horned toad
great horned toads
great horned tomato
great horned tomato
great horned turtle
great harvest trek
great harvest tulsa
great harvest taylorsville
great harvest temecula
great harvest trek
great harvest twin
great harvest tempe
great harvest twin
great harvest turners
great harvest twitter
great horned toad
great horned toads
great horned tomato
great horned tomato
great horned turtle
great harvest trek
great harvest tulsa
great harvest taylorsville
great harvest temecula
great harvest trek
great harvest twin
great harvest tempe
great harvest twin
great harvest turners
great harvest twitter
great horror thriller
great horror tv
great horror thriller
great horror titles
great horror tv
great holiday traditions
great holiday treats
great holiday toasts
great holiday tech
great holiday travel
great holiday treat
great holiday tips
great holiday treat
great holiday toys
great holiday tour
great harvest trek
great harvest tulsa
great harvest taylorsville
great harvest temecula
great harvest trek
great harvest twin
great harvest tempe
great harvest twin
great harvest turners
great harvest twitter
great horned toad
great horned toads
great horned tomato
great horned tomato
great horned turtle

Maalesef Google, URL'nin bir süre sonra çalışmayı durdurmasını öneriyor. Belki de IP adresim Google tarafından yanlış kullanım için kara listeye alındı ​​?!


5

Yakut

çok yakut. birçok doge. vay.

Çevrimiçi sürüm

@prefix = %w[all amazingly best certainly crazily deadly extra ever few great highly incredibly jolly known loftily much many never no like only pretty quirkily really rich sweet such so total terribly utterly very whole xtreme yielding zippily]
@adjective = %w[appealing app apl attractive brave bold better basic common challenge c++ creative credit doge durable dare enticing entertain extreme fail fabulous few favourite giant gigantic google hello happy handy interesting in improve insane jazz joy j java known kind kiwi light laugh love lucky low more mesmerise majestic open overflow opinion opera python power point popular php practice quirk quit ruby read ready stunning stack scala task teaching talking tiny technology unexpected usual useful urban voice vibrant value word water wow where xi xanthic xylophone young yummy zebra zonk zen zoo]

def doge(input)
  wow = ""
  input.chars.each_slice(2) do |char1, char2|
    if char2 == nil
      wow << (@prefix + @adjective).sample(1)[0] + "."
      break
    end
    wow << @prefix.select{|e| e[0] == char1}.sample(1)[0]
    wow << " "
    wow << @adjective.select{|e| e[0] == char2}.sample(1)[0]
    wow << ". "
  end
  wow
end

puts doge("dftba")
puts doge("asofiejgie")
puts doge("iglpquvi")

Örnekler:

deadly favourite. terribly better. challenge.
all scala. only favourite. incredibly enticing. jolly giant. incredibly extreme. 
incredibly gigantic. loftily popular. quirkily usual. very interesting.

kesinlikle hafif. hiç ses. ekstra hazır. fazladan yığın. çok çekici. asla çarpıcı. bütün eğlendirmek. zengin çarpıcı. sadece favori. inanılmaz yakut.
izabera

ölümcül başarısız. çok cesur. şanslı. tüm scala. sadece birkaçı. inanılmaz eğlendirmek. neşeli google. inanılmaz eğlendirmek. inanılmaz google. Yüce python. tuhaf bir şekilde beklenmedik. çok geliştirin.

4

Mathematica

Kısaltmalarda yaygın olarak görülen bazı terimler.

terms = {"Abbreviated", "Accounting", "Acquisition", "Act", "Action", "Actions", "Activities", "Administrative", "Advisory", "Afloat", "Agency", "Agreement", "Air", "Aircraft", "Aligned", "Alternatives", "Analysis", "Anti-Surveillance", "Appropriation", "Approval", "Architecture", "Assessment", "Assistance", "Assistant", "Assurance", "Atlantic", "Authority", "Aviation", "Base", "Based", "Battlespace", "Board", "Breakdown", "Budget", "Budgeting", "Business", "Capabilities", "Capability", "Capital", "Capstone", "Category", "Center", "Centric", "Chairman", "Change", "Changes", "Chief", "Chief,", "Chiefs", "Closure", "College", "Combat", "Command", "Commandant", "Commander","Commander,", "Commanders", "Commerce", "Common", "Communications", "Communities", "Competency", "Competition", "Component", "Comptroller", "Computer", "Computers,", "Concept", "Conference", "Configuration", "Consolidated", "Consulting", "Contract", "Contracting", "Contracts", "Contractual", "Control", "Cooperative", "Corps", "Cost", "Council", "Counterintelligence", "Course", "Daily", "Data", "Date", "Decision", "Defense", "Deficiency", "Demonstration", "Department", "Depleting", "Deployment", "Depot", "Deputy", "Description", "Deskbook", "Determination", "Development", "Direct", "Directed", "Directive", "Directives", "Director", "Distributed", "Document", "Earned", "Electromagnetic", "Element", "Engagement", "Engineer", "Engineering", "Enterprise", "Environment", "Environmental", "Equipment", "Estimate", "Evaluation", "Evaluation)", "Exchange", "Execution", "Executive", "Expense", "Expert", "Exploration", "Externally", "Federal", "Final", "Financial", "Findings", "Fixed","Fleet", "Fleet;", "Flight", "Flying", "Followup", "Force", "Forces,", "Foreign", "Form", "Framework", "Full", "Function", "Functionality", "Fund", "Funding", "Furnished", "Future", "Government", "Ground", "Group", "Guidance", "Guide", "Handbook", "Handling,", "Hazardous", "Headquarters", "Health", "Human", "Identification", "Improvement", "Incentive", "Incentives", "Independent", "Individual", "Industrial", "Information", "Initial", "Initiation", "Initiative", "Institute", "Instruction", "Integrated", "Integration", "Intelligence", "Intensive", "Interdepartmental", "Interface", "Interference", "Internet", "Interoperability", "Interservice", "Inventory", "Investment", "Joint", "Justification", "Key", "Knowledge", "Lead", "Leader", "Leadership", "Line", "List", "Logistics", "Maintainability", "Maintenance", "Management", "Manager", "Manual", "Manufacturing", "Marine", "Master", "Material", "Materials", "Maturity", "Measurement", "Meeting", "Memorandum", "Milestone", "Milestones", "Military", "Minor", "Mission", "Model", "Modeling", "Modernization", "National", "Naval", "Navy", "Needs", "Network", "Networks", "Number", "Objectives", "Obligation", "Observation", "Occupational", "Offer", "Office", "Officer", "Operating", "Operational", "Operations", "Order", "Ordering", "Organization", "Oversight", "Ozone", "Pacific", "Package", "Packaging,", "Parameters", "Participating", "Parts", "Performance", "Personal", "Personnel", "Planning", "Planning,", "Plans", "Plant", "Point", "Policy", "Pollution", "Practice", "Preferred", "Prevention", "Price", "Primary", "Procedure", "Procedures", "Process", "Procurement", "Product", "Production", "Professional", "Program", "Programmatic", "Programming", "Project", "Proposal", "Protection", "Protocol", "Purchase", "Quadrennial", "Qualified", "Quality", "Rapid", "Rate", "Readiness", "Reconnaissance", "Regulation", "Regulations", "Reliability", "Relocation", "Repair", "Repairables", "Report", "Reporting", "Representative", "Request", "Requirement", "Requirements", "Requiring", "Requisition", "Requisitioning", "Research", "Research,", "Reserve", "Resources", "Responsibility", "Review", "Reviews", "Safety", "Sales", "Scale", "Secretary", "Secure", "Security", "Selection", "Senior", "Service", "Services", "Sharing", "Simulation", "Single", "Small", "Software", "Source", "Staff", "Standard", "Standardization", "Statement", "Status", "Storage,", "Strategy", "Streamlining", "Structure", "Submission", "Substance", "Summary", "Supplement", "Support", "Supportability", "Surveillance", "Survey", "System", "Systems", "Subsystem", "Tactical", "Target", "Targets", "Team", "Teams", "Technical", "Technology", "Test", "Tool", "Total", "Training", "Transportation", "Trouble", "Type", "Union", "Value", "Variable", "Warfare", "Weapon", "Work", "Working", "X-Ray", "Xenon", "Year", "Yesterday", "Zenith", "Zoology"};

kod

f[c_]:=RandomChoice[Select[terms,(StringTake[#,1]==c)&]]
g[acronym_]:=Map[f,Characters@acronym]

Örnekler

ABC kısaltması için rastgele oluşturulmuş on aday .

Table[Row[g["ABC"], "  "], {10}] // TableForm

Eylem Dağılımı
Muhasebe Bütçe Ticaret
Hava Bütçeleme Kontrol
Edinme Arıza Bilgisayar
Eylem Bütçeleme Maliyeti
Hizalanmış Arıza Ortak
Hizalanmış Bütçeleme Kurs
Danışma Bütçeleme Yeteneği
Hizalanmış Savaş Alanı Ortak
Gözetim Karşıtı Savaş Alanı Denetleyici


FMP

Table[Row[g["FMP"], "  "], {10}] // TableForm

Bulgular Yöneticisi Protokol
Nihai Manuel Satın Alma
Uçan Ölçüm Personeli
Tam İmalat Planları
Form Ölçüm Programlama
Finansal Model Programatik
Gelecek Modernizasyon Teklifi
Finansal Ölçüm Paket
Formu, Bakım Planlaması
Tam Modelleme Programlı


STM

Table[Row[g["STM"], "  "], {10}] // TableForm

Standardizasyon Toplam Modernizasyon
Hizmeti Taktik Kilometre Taşı
Gözetimi Ulaştırma Yönetimi
Alt Sistemi Sorunlu Malzemeler
Yapı Testi Askeri
Ölçek Test Malzemeleri
Strateji Aracı Modernizasyon
Küçük Teknoloji Küçük
Desteklenebilirlik Ulaşım Üretim Durumu Araç Yönetimi


CRPB

Table[Row[g["CRPB"], "  "], {10}] // TableForm

Kooperatif Düzenleme Koruma İş
Komutanı Talep Politikası Temel
Değişiklikler Onarım Programlama, İş
Kapatma İncelemeleri Proje Bütçesi
Ticaret Düzenlemeleri Parametreler Temel
Sözleşmeler Hızlı Fiyat Tabanı
Relokasyon Uygulama Bütçeleme
Kursu Raporlama Personel Savaş
Alanı Ders Gereksinim Prosedürleri Bütçe


SARDE

Table[Row[g["SARDE"], "  "], {10}] // TableForm

Ek Eylem Direktif Gerektiren
Ölçek Tahmin Hizalanmış Gereksinim Günlük Tahmin
Sekreter Atlantik Talep Direktörü Gider
Yazılımı Eylem İnceleme Doğrudan Keşif
Destek Yasası Hazırlık Savunması Elektromanyetik
Yazılım Kısaltılmış Gereksinim Karar Değişimi
Gönderme Değerlendirme Talebi Açıklama Yönetici
Düzene Muhasebe Oranı Depo Değerlendirme
Gözetim Yardımcısı Talep Etme Depo
Anketi Yardım Kaynakları Kaynaklar Gider Gider


2

D

Bu çoğunlukla saçmalık üretir, ancak bazen mantıklı bir şey ya da esprili olacak kadar saçma bir şey üretir.

Kelimeler bu JSON dosyasından alınır (~ 2.2MB).

Program kısaltmayı ilk komut satırı bağımsız değişkeninden alır ve programa kaç kelime öbeği oluşturulacağını bildiren isteğe bağlı ikinci bir bağımsız değişkeni destekler.

import std.file : readText;
import std.conv : to;
import std.json, std.random, std.string, std.stdio, std.algorithm, std.array, std.range;

void main( string[] args )
{
    if( args.length < 2 )
        return;

    try
    {
        ushort count = 1;

        if( args.length == 3 )
            count = args[2].to!ushort();

        auto phrases = args[1].toUpper().getPhrases( count );

        foreach( phrase; phrases )
            phrase.writeln();
    }
    catch( Throwable th )
    {
        th.msg.writeln;
        return;
    }
}

string[] getPhrases( string acronym, ushort count = 1 )
in
{
    assert( count > 0 );
}
body
{
    auto words = getWords();
    string[] phrases;

    foreach( _; 0 .. count )
    {
        string[] phrase;

        foreach( chr; acronym )
        {
            auto matchingWords = words.filter!( x => x[0] == chr ).array();
            auto word = matchingWords[uniform( 0, matchingWords.length )];
            phrase ~= word;
        }

        phrases ~= phrase.join( " " );
    }

    return phrases;
}

string[] getWords()
{
    auto text = "words.json".readText();
    auto json = text.parseJSON();
    string[] words;

    if( json.type != JSON_TYPE.ARRAY )
        throw new Exception( "Not an array." );

    foreach( item; json.array )
    {
        if( item.type != JSON_TYPE.STRING )
            throw new Exception( "Not a string." );

        words ~= item.str.ucfirst();
    }

    return words;
}

auto ucfirst( inout( char )[] str )
{
    if( str.length == 1 )
        return str.toUpper();

    auto first = [ str[0] ];
    auto tail  = str[1 .. $];

    return first.toUpper() ~ tail.toLower();
}

Örnekler :

D:\Code\D\Acronym>dmd acronym.d

D:\Code\D\Acronym>acronym utf 5
Unchallenged Ticklebrush Frication
Unparalysed's Toilsomeness Fructose's
Umpiring Tableland Flimsily
Unctuousness Theseus Flawless
Umbrella's Tarts Formulated

2

BASH

for char in $(sed -E s/'(.)'/'\1 '/g <<<"$1");
do
    words=$(grep "^$char" /usr/share/dict/words)
    array=($words)
    arrayCount=${#array[*]}
    word=${array[$((RANDOM%arrayCount))]}
    echo -ne "$word " 
done
echo -ne "\n"

Yani: $ bash acronym-to-phrase.sh dftbasonuçlandı

deodorization fishgig telolecithal bashlyk anapsid
demicivilized foretell tonogram besmouch anthropoteleological
doer fightingly tubulostriato bruang amortize 


Ve: $ bash acronym-to-phrase.sh diysonuçlandı

decanically inarguable youthen
delomorphous isatin yen
distilling inhumorously yungan


En sonunda: $ bash acronym-to-phrase.sh rsvp

retzian sensitizer vestiarium pathognomonical
reaccustom schreiner vincibility poetizer
refractorily subspherical villagey planetule

...

İlk tepkim? sarsılmaz taşıma ateşlemesi


1

piton

Yani, bu muhtemelen herhangi bir popülerlik yarışmasını kazanmayacak, ama Python'un temsil edilmeye ihtiyacı olduğunu düşündüm. Bu Python 3.3 ve sonraki sürümlerinde çalışır. @ Tony-h kelimelerinin json dosyasını ödünç aldım ( burada bulabilirsiniz ). Temel olarak, bu kod sadece json listesini alır ve tüm kelimeleri alfabenin harfleri üzerinde dizinlenmiş bir sözlükte düzenler. Daha sonra, python uygulamasına hangi kısaltma aktarılırsa, sözlüğe bir dizin olarak kullanılır. Kısaltmadaki her harf için, o harf altında dizine eklenen tüm kelimeler arasından rastgele bir kelime seçilir. İstediğiniz sayıda çıkış da sağlayabilirsiniz, aksi takdirde hiçbir şey belirtilmezse 2 seçenek oluşturulur.

Kod (Ifadeit.py olarak kaydetti):

import argparse
import json
import string
from random import randrange

parser = argparse.ArgumentParser(description='Turn an acronym into a random phrase')
parser.add_argument('acronym', nargs=1)
parser.add_argument('iters',nargs='?',default=2,type=int)
args = parser.parse_args()

acronym=args.acronym[0]
print('input: ' + acronym)

allwords=json.load(open('words.json',mode='r',buffering=1))

wordlist={c:[] for c in string.ascii_lowercase}
for word in allwords:
    wordlist[word[0].lower()].append(word)

for i in range(0,args.iters):
    print('output:', end=" ")
    for char in acronym:
        print(wordlist[char.lower()][randrange(0,len(wordlist[char.lower()]))], end=" ")
    print()

Bazı örnek çıktılar:

$ python phraseit.py abc
input: abc
output: athabaska bookish contraster
output: alcoholism bayonet's caparison

Bir diğeri:

$ python phraseit.py gosplet 5
input: gosplet
output: greenware overemphasiser seasons potential leprosy escape tularaemia
output: generatrix objectless scaloppine postulant linearisations enforcedly textbook's
output: gutturalism oleg superstruct precedential lunation exclusion toxicologist
output: guppies overseen substances perennialises lungfish excisable tweed
output: grievously outage Sherman pythoness liveable epitaphise tremulant

En sonunda:

$ python phraseit.py nsa 3
input: nsa
output: newsagent spookiness aperiodically
output: notecase shotbush apterygial
output: nonobjectivity sounded aligns
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.