임의의 형용사 또는 명사를 얻는 방법은 무엇입니까?

임의의 형용사 또는 명사를 얻는 방법은 무엇입니까?

단어 목록을 찾았지만 해당 /usr/share/dict/words단어를 해당 품사로 분할할 수 있는 방법(이미 존재하는 방법?)이 있는지 모르겠습니다. 또는 다른 제안은 괜찮습니다. /usr/share/dict/words내가 찾은 첫 번째 단어 목록에 불과했습니다.

답변1

사전 API를 사용할 수 있으며, 저는 merriam webster의 Dictionaryapi.com API에 대한 무료 사용 토큰을 등록했습니다.

그런 다음 파일에서 임의의 단어를 얻을 수 있습니다 /usr/share/dict/words(macos에서는 이 파일에 있는 많은 단어가 실제로 실제 단어가 아니거나 적어도 영어 단어가 아닙니다.). 해당 파일에는 단어에 대한 유용한 정보가 포함되어 있지 않으므로 해당 파일이 형용사인지 명사인지 확인하려면 API를 사용하여 검색해야 합니다.

#!/bin/bash

token=get-your-own-token

until [[ $fl == noun || $fl == adjective ]]; do
    word=$(sort -R /usr/share/dict/words | tail -1)
    fl=$(curl -s "https://www.dictionaryapi.com/api/v3/references/collegiate/json/${word}?key=$token" | jq -r .[].fl 2>/dev/null)
done

echo "Word is: $word"

이는 실제 단어이고 명사 또는 형용사인 단어를 찾기 전에 일반적으로 여러 단어를 찾아야 하기 때문에 매우 느립니다(API 자체가 아닌 Mac의 대규모 dict 파일에서 임의의 단어를 가져옴). 또한 이 코드에서는 각 단어의 첫 번째 정의가 품사 중 어느 부분인지만 살펴보므로 단어를 형용사 또는 명사로 사용할 수 있지만 건너뛸 수 있습니다. 왜냐하면 그것이 첫 번째 정의가 아니기 때문입니다. 단어가 사용됩니다.

결국 그것은 당신이 찾고 있는 것을 수행하지만 잘 되지는 않습니다.

답변2

'알고 있는' 사람들이 이미 작업을 수행했기 때문에 가지고 있는 목록을 분류하려고 시도하는 것보다 분류학적으로 올바른 단어 목록을 얻는 것이 더 나을 것입니다.

다음은 일부입니다.워드넷이미 동사, 형용사, 명사 등으로 분류되어 있지만 분사, 접속사 등은 포함되지 않는 것 같습니다.

명사 n, 동사 v, 부사 r및 형용사는 a모두 두 번째 필드에 식별 문자가 있는 인덱스 파일에 있으므로 조금 추출하여 무작위 awk로 전달 shuf하고 파일로 리디렉션할 수 있습니다.

awk '{ if ( $2 ~ "^[nvar]$")  print $1" " $2 } ' index.* | shuf > mylist

이는 155,339 단어의 파일을 제공합니다.

그 후에는 임의의 줄 번호를 선택하거나 가장 쉽게 shuf파일을 선택하고 매번 줄 1을 선택할 수 있습니다.

shuf -n 1 mylist

당신에게 말씀과 수업을 줄 것입니다

shuf -n 10 mylist

coolness n
coefficient_of_elasticity n
naive_realism n
flying_mare n
nut_bar n
santiago_de_chile n
turkmen a
fore-and-aft_topsail n
robert_gray n
follow_suit v

일부 항목은 공백 대신 "_"를 사용하므로 불쾌할 경우 공백을 제거해야 합니다.

따로 보관하려면....

awk '{ if ( $2 ~ "^[nvar]$" )  {print $1 > "my"$2}} ' index.*

그리고 임의의 단어 기능은 다음과 같을 수 있습니다.

shuf -n 1 my$1

다음과 같이 클래스를 인수(n, v, a 또는 r)로 전달하는 경우

randword n

관련 정보