Từ viết tắt của cụm từ


12

Bài tập:

Ví dụ dftba, tạo một chương trình sẽ lấy một từ viết tắt làm đầu vào và tạo ra một số cụm từ có thể mà từ viết tắt có thể đại diện. Bạn có thể sử dụng danh sách từ làm đầu vào từ. Lấy cảm hứng từ https://www.youtube.com/watch?v=oPUxnpIWt6E

Thí dụ:

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

Quy tắc:

  • Chương trình của bạn không thể tạo cùng một cụm từ mỗi lần cho cùng một từ viết tắt, phải có sự ngẫu nhiên
  • Đầu vào sẽ là tất cả chữ thường
  • Đăng một vài ví dụ (đầu vào và đầu ra)
  • Mọi ngôn ngữ đều được chấp nhận
  • Đó là một , vì vậy hầu hết những người ủng hộ đều giành chiến thắng!

Vui lòng hiển thị một ví dụ đầu ra.
Mukul Kumar

@MukulKumar đã thêm nó
TheDoctor

1
Nó cần phải có ý nghĩa? hay sự kết hợp nào?
Mukul Kumar

Nó không cần phải có ý nghĩa
TheDoctor

Người dùng được phép chạy chương trình bao nhiêu lần? Tại một số điểm, chương trình không thể phá vỡ quy tắc số 1.
Ông Lister ngày

Câu trả lời:


8

HTML, CSS và 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;
}

Mã não

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)

Sử dụng một trình tạo từ ngẫu nhiên và hiển thị kết quả trực tiếp khi tìm từ.

Đây là một câu đố nếu bạn muốn tự chạy nó.

Đây là một GIF của đầu ra:

đầu ra hoạt hình


7

Java

Lấy danh sách từ từ wiktionary. Chọn một từ ngẫu nhiên từ danh sách đó bắt đầu bằng chữ cái đúng. Sau đó, sử dụng Google đề xuất đệ quy để tìm kiếm các từ tiếp theo có thể. Đưa ra một danh sách các khả năng. Nếu bạn chạy lại nó với cùng một từ viết tắt, bạn sẽ nhận được kết quả khác nhau.

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();
    }
}

Đầu ra mẫu:

$ 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

Thật không may, Google đề xuất URL ngừng hoạt động sau một thời gian - có lẽ IP của tôi đã bị Google đưa vào danh sách đen vì sử dụng sai?!


5

Hồng ngọc

thật là ruby nhiều doge. ồ

Phiên bản trực tuyến

@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")

Ví dụ:

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

chắc chắn là ánh sáng. bao giờ lên tiếng. thêm sẵn sàng chồng thêm. hấp dẫn khủng khiếp. không bao giờ tuyệt đẹp toàn giải trí. phong phú tuyệt đẹp. chỉ yêu thích ruby đáng kinh ngạc.
izabera

thất bại chết người. dũng cảm khủng khiếp. may mắn. tất cả scala. chỉ một ít. giải trí vô cùng. vui vẻ giải trí vô cùng. vô cùng google. con trăn gầy gò. không ngờ lại. rất cải thiện.

4

Toán học

Một số thuật ngữ thường xuất hiện trong các từ viết tắt.

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"};

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

Ví dụ

Mười ứng cử viên được tạo ngẫu nhiên cho từ viết tắt ABC .

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

Hành động Phân tích Quân đoàn
Kế toán Ngân sách Thương mại
Kiểm soát ngân sách không khí Kiểm soát sự
cố Máy tính
Ngân sách Hành động Chi phí ngân sách
Phân bổ
liên kết Khóa học
ngân sách chung Tư vấn ngân sách Khả năng ngân sách
Sắp xếp Battlespace
Chống giám sát chiến đấu chung


FMP

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

Phát hiện Trình quản lý Giao thức
Hướng dẫn cuối cùng Mua
nhân viên đo lường bay
Kế hoạch sản xuất đầy đủ
Biểu mẫu Đo lường lập trình
Mô hình tài chính Lập trình
hiện đại hóa Tương lai Đề xuất
Gói đo lường tài chính
, Lập kế hoạch bảo trì Lập
mô hình đầy đủ Lập trình


STM

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

Tiêu chuẩn hóa Tổng số hiện đại hóa
Dịch vụ
Giám sát Mốc chiến thuật Quản lý vận tải
Hệ thống con Sự cố Vật liệu
Cấu trúc Thử nghiệm
Quy mô quân sự Vật liệu
Chiến lược Công cụ Hiện đại hóa
Công nghệ nhỏ
Hỗ trợ nhỏ Vận chuyển Sản xuất Công cụ quản lý Tình trạng


CRPB

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

Quy định hợp tác Bảo vệ
Chỉ huy kinh doanh Yêu cầu Chính sách
Thay đổi cơ sở Lập trình sửa chữa,
Đóng cửa kinh doanh Dự án Ngân sách
Quy định thương mại Thông số
Hợp đồng Cơ sở Giá nhanh
Trường đại học Thực hành tái định cư Ngân sách
Báo cáo Nhân sự Battlespace
Thủ tục yêu cầu Ngân sách


SARDE

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

Bổ sung Actions Yêu cầu Chỉ thị Ước tính
Scale Aligned Yêu cầu hàng ngày Estimate
trưởng Đại Tây Dương trưng dụng Giám đốc Chi phí
phần mềm Action xét trực tiếp thăm dò
Hỗ trợ Luật Readiness Defense điện
Software viết tắt Yêu cầu Quyết định giao dịch
đánh giá những thông tin đó trưng dụng Mô tả hành
tinh giản Accounting Rate Depot đánh giá
giám sát Assistant trưng dụng Depot Engagement
Survey Hỗ trợ Tài Thiếu Chi


2

D

Điều này chủ yếu tạo ra vô nghĩa, nhưng đôi khi nó sẽ tạo ra một cái gì đó hợp lý, hoặc một cái gì đó ngớ ngẩn đến mức hài hước.

Các từ được lấy từ tệp JSON này (~ 2.2MB).

Chương trình lấy từ viết tắt từ đối số dòng lệnh đầu tiên và hỗ trợ đối số thứ hai tùy chọn cho chương trình biết có bao nhiêu cụm từ để tạo.

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();
}

Ví dụ :

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"

Vì vậy: $ bash acronym-to-phrase.sh dftbakết quả là

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


Và: $ bash acronym-to-phrase.sh diykết quả là

decanically inarguable youthen
delomorphous isatin yen
distilling inhumorously yungan


Cuối cùng: $ bash acronym-to-phrase.sh rsvp

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

...

Phản ứng ban đầu của tôi? vận chuyển hàng không


1

Con trăn

Vì vậy, điều này có thể sẽ không chiến thắng bất kỳ cuộc thi phổ biến nào, nhưng tôi cho rằng Python cần đại diện. Điều này hoạt động trong Python 3.3+. Tôi đã mượn tập tin từ json của @ tony-h ( tìm nó ở đây ). Về cơ bản, mã này chỉ lấy danh sách json và sắp xếp tất cả các từ vào một từ điển được lập chỉ mục trên các chữ cái của bảng chữ cái. Sau đó, bất cứ từ viết tắt nào được truyền vào ứng dụng python đều được sử dụng làm chỉ mục vào từ điển. Đối với mỗi chữ cái trong từ viết tắt, một từ ngẫu nhiên được chọn từ tất cả các từ được lập chỉ mục dưới chữ cái đó. Bạn cũng có thể cung cấp một số đầu ra mong muốn hoặc nếu không có gì được chỉ định, 2 tùy chọn sẽ được tạo.

Mã (tôi đã lưu nó dưới dạng cụm từ):

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()

Một số kết quả đầu ra mẫu:

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

Khác:

$ 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

Cuối cùng:

$ python phraseit.py nsa 3
input: nsa
output: newsagent spookiness aperiodically
output: notecase shotbush apterygial
output: nonobjectivity sounded aligns
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.