2016-12-26 2 views
1

는 사람이 대명사 교체에 대한 조언을 구하셨? 나는 PHP str_replace 배열로 대체 될 form % keywords %를 사용하여 사용자를 위해 이것을 쉽게 만들고 싶습니다. 그러나 그것은 영어로 힘듭니다.대명사 subsitution

예 :

$input='%his% house is %his%, and you can visit %him% there.'; 
$from[]='%his%';$from[]='%him%'; 
if($gender=='male'){ 
    $to[]='his';$to[]='him'; 
} 
else{ 
    to[]='hers';$to[]='her'; 
} 
echo str_replace($from, $to, $input); 

출력 :

그의 집은 그의이며 OK =이 < < 그를 방문 할 수 있습니다!

그녀의 집은 그녀 그리고 당신은 < < == 짜증이 그녀를 방문 할 수 있습니다!

예 2 :

$input='%her% house is %hers%, and you can visit %her% there.'; 
$from[]='%hers%';$from[]='%her%'; 
if($gender=='male'){ 
    $to[]='his';$to[]='him'; 
} 
else{ 
    to[]='hers';$to[]='her'; 
} 
echo str_replace($from, $to, $input); 

출력 :

그 집이 자신과 당신이 거기 < = 짜증 < 그를 방문 할 수 있습니다!

그녀의 집은 그녀 그리고 당신은 그녀가 < < == OK를 방문 할 수 있습니다!

는 가끔 영어 싫어. 이것을 관리하는 방법에 대한 아이디어가 있으십니까?

는 FYI, this answer 동일한 나쁜 결과를 생산한다.

답변

0

자세한 검토에서 나는 모든 경우를 만족하고 공정하게 접근 할 수있는 더 간단한 접근법을 발견했다고 생각합니다 사용자가 이해하기 쉽습니다. 나는 키워드에 대한 3 인칭 복수를 사용합니다

  • 그들이> 그/그녀
  • 그들> 그/그녀의
  • 그들의> 그/그녀의
  • 그들의> 그/그녀의

Jerry와 Markus AO를 통해 이것을 생각해 주셔서 감사합니다.

2

귀하의 자리 표시자는 대명사, genitive, 소유욕 등 대명사의 굴절도 기록해야합니다. 영어가 여전히 굴절을 사용하는 몇 안되는 장소 중 하나는 대명사이며 '누가'대 '누가'인지 탈출구.

불행하게도 영어 연설자는 일상적인 연설에서도 규칙을 올바르게 지키지 못하고 (적어도 '나'는 항상 전환됩니다), (적어도 미국에서는) 실제로 가르쳐주지 않습니다. 다른 경우의 공식 이름. ("속격?"). 따라서 사용자가 쉽게 사용할 수있는 방법을 생각해내는 것은 상당히 어려울 것입니다.

나는 $first['possessive'] = 'my' 수 있도록 자리 표시로 %possessive% 추천, 가능한 대체 아마도 $third['male']['possessive'] = 'his', $third['female']['possessive'] = 'her' 싶습니다.

+0

감사합니다 ... 가장 유용한 솔루션이지만 내 사용자베이스에 대한 PITA에 동의합니다. 나는 대다수 상황에서는 만족스럽지 않은 모호한 % him % % her %를, 필요하다면 사용자가 입력 할 수있는 옵션으로 % possessive % % object % %를 유지할 것이라고 생각합니다. 다행히 3 인칭 단수 항목 만 제공합니다. Google AI가 자신의 컨텍스트 평가를 수행하는 방법을 알아 내려고 기다릴 것입니다. 그것은 내 정보보다 더 큽니다. –

+0

Jerry와 Markus AO 모두에게 감사의 말을 전합니다. 내가 한 가지 대답만을 "확인"할 수있는 것처럼 보였으므로 나는 동전을 뒤집어서 Jerry 's를 확인했다. 두 번째 대답이기 때문에 동일한 질문을 가진 가난한 혼란 된 영혼이 영감을 받아 영원히 읽을 수 있고 두 응답자 모두에게서 지능을 얻을 수 있기를 바랍니다. –

+0

물론, 동전은 항상 공평합니다. 주위로부터 적절한 굴절을 감추려고하는 초보적인 상황 검사기를 만들기 위해 수퍼 하드 (즉, "2 일간의 하루 만에 두들기")가되어서는 안되며, 대부분의 시간에 바로 잡아서는 안됩니다. 매우 비가 오는 날을위한 태그. 그때까지.^_^ –

1

당신은 가능한 굴절 및 사용 일치 자리의 훨씬 매핑해야합니다. 심지어 혼자 세 번째 인칭 대명사와이 경우 English Personal Pronouns 을 (를 다루는 겹치는있다 즉 객체와 소유 의존하는 사이에, 기타.). 모든 경우/형태를 포함하는 샘플 배열의 경우 : %obj%, %poss%

$pronouns['3rd']['male'] = [ 
    'subj' => 'he', 
    'obj' => 'him', 
    'poss' => 'his', 
    'poss_ind' => 'his', 
    'refl' => 'himself', 
]; 

$pronouns['3rd']['female'] = [ 
    'subj' => 'she', 
    'obj' => 'her', 
    'poss' => 'her', 
    'poss_ind' => 'hers', 
    'refl' => 'herself', 
]; 

그런 다음 마크 업 자리, 또는 %object%로 전체 형태 등을 사용하면 오히려 그런 거라고합니다. 또는 %3rd:obj% 등. 템플릿의 모든 사람을 다룰 필요가있는 경우. 그러나 오버랩이 주어지면,이 올바른 것을 얻고 싶다면 여기에 전면적 인 문법을 둘러 볼 방법이 없습니다.

종속/독립 소유 대명사 등의 차이점에 대해 사용자를 교육하는 것이 가장 좋지만이를 수행하는 것 외에도 컨텍스트에서 적절한 굴절을 차감하는 의미 분석 알고리즘을 찾아야합니다.당신은 함께/독립 소유물을 보여주는 적절한 아이콘과 함께 클릭 투 더 태그 인터페이스를 만들 수 있습니다 :)

+0

이 답변과 제리의 대답은 그 문제가 간단하게 그/그녀의 유형 키워드로 해결되지 않는다는 더 많은 증거를 다시 한번 다시 생각해 냈습니다. Jerry의 답변에 대한 답장을 참조하십시오. 여기서 Jerry의 도움과 계획을 인정합니다. –